Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ลำดับที่เพิ่มขึ้นอย่างเข้มงวด JavaScript


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

ตัวอย่างเช่น −

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

สำหรับซีเควนซ์ =[1, 3, 2] เอาต์พุตควรเป็นฟังก์ชัน (ลำดับ) =จริง คุณสามารถลบ 3 ออกจากอาร์เรย์เพื่อรับลำดับที่เพิ่มขึ้นอย่างเคร่งครัด [1, 2] อีกวิธีหนึ่ง คุณสามารถลบ 2 เพื่อรับลำดับที่เพิ่มขึ้นอย่างเคร่งครัด [1, 3]

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

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

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

แนวทาง

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

หากในระหว่างการวนซ้ำ การนับเกิน 1 เราจะคืนค่าเท็จ จากนั้น มิฉะนั้น หากเราตรวจสอบทั้งหมดด้วยองค์ประกอบที่ไม่ต้องการ <=1 เราจะคืนค่าเป็น จริง

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

ตัวอย่าง

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