Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ลำดับเพิ่มขึ้นอย่างเคร่งครัด (Strictly Increasing Sequence) ใน JavaScript


ได้รับลำดับจำนวนเต็มเป็นอาร์เรย์ เราต้องตัดสินใจว่าสามารถได้ลำดับเพิ่มขึ้นอย่างเคร่งครัดโดยการลบองค์ประกอบไม่เกินหนึ่งตัวจากอาร์เรย์ได้หรือไม่

ตัวอย่าง −

สำหรับ sequence = [1, 3, 2, 1] ผลลัพธ์ควรเป็น function(sequence) = false ไม่มีองค์ประกอบไหนในอาร์เรย์นี้ที่ลบออกได้เพื่อให้ได้ลำดับเพิ่มขึ้นอย่างเคร่งครัด

สำหรับ sequence = [1, 3, 2] ผลลัพธ์ควรเป็น function(sequence) = true คุณสามารถลบ 3 ออกจากอาร์เรย์เพื่อได้ลำดับเพิ่มขึ้นอย่างเคร่งครัด [1, 2] หรือลบ 2 เพื่อได้ [1, 3]

ลำดับเพิ่มขึ้นอย่างเคร่งครัด

เป็นคำทางคณิตศาสตร์ที่แทนการจัดเรียงตัวเลขที่ทุกตัวเลขถัดไปมากกว่าตัวเลขก่อนหน้า นอกจากนี้ยังมีลำดับเพิ่มขึ้น (increasing sequence) ที่ตัวต่อไปมากกว่าหรือเท่ากับตัวก่อนหน้า

ตรรกะเดียวกันใช้ได้กับลำดับลดลงและลดลงอย่างเคร่งครัด

วิธีการ

เราจะวนลูปผ่านอาร์เรย์ตรวจสอบว่าองค์ประกอบถัดไปมากกว่าองค์ประกอบก่อนหน้าหรือไม่ ถ้ามากกว่า ก็โอเค แต่ถ้าไม่มากกว่า (จำได้ว่าต้องมากกว่าเคร่งครัด ไม่ใช่มากกว่าหรือเท่ากัน เพราะเราต้องการลำดับเพิ่มขึ้นอย่างเคร่งครัด) เราจะนับ unwantedElements และเพิ่ม 1 ทุกครั้งที่เกิดขึ้น

ถ้าระหว่างการวนลูป จำนวนเกิน 1 เราคืนค่า false ทันที มิฉะนั้นถ้าเราผ่านลูปหมดด้วย unwantedElements <= 1 เราคืนค่า true

ดังนั้น มาเขียนโค้ดสำหรับฟังก์ชันนี้

ตัวอย่าง

const isStrictlyIncreasing = (arr) => {    let unwantedElements = 0;    for(let i = 0; i < arr.length - 1; i++){       if(arr[i] >= arr[i+1]){          unwantedElements++;          if(unwantedElements > 1){             return false;          };       };    };    return true; }; console.log(isStrictlyIncreasing([1, 3, 2, 1])); console.log(isStrictlyIncreasing([1, 3, 2]));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

false true