เมื่อกำหนดลำดับของจำนวนเต็มเป็นอาร์เรย์ เราต้องพิจารณาว่าเป็นไปได้หรือไม่ที่จะได้ลำดับที่เพิ่มขึ้นอย่างเคร่งครัดโดยนำองค์ประกอบออกจากอาร์เรย์ไม่เกินหนึ่งรายการ
ตัวอย่างเช่น −
สำหรับซีเควนซ์ =[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