สมมติว่ามีอาร์เรย์ของตัวเลขดังนี้:
const arr = [4, 7, 4, 8, 9, 3];
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขดังกล่าว ฟังก์ชันควรค้นหาสามตัวเลขจากอาร์เรย์ที่ดัชนีและขนาดของพวกเขาอยู่ในลำดับเพิ่มขึ้นอย่างเคร่งครัด (ติดกันหรือไม่ติดกันก็ได้)
เช่น ในอาร์เรย์ข้างต้น ตัวเลข 7, 8 และ 9 มีดัชนี 1, 3 และ 4 ตัวเลขเหล่านี้ตรงตามเงื่อนไขทั้งสอง ดังนั้นฟังก์ชันควรคืนค่า true สำหรับอาร์เรย์นี้
ตัวอย่าง
โค้ดสำหรับนี้จะเป็นดังนี้:
const arr = [4, 7, 4, 8, 9, 3];
const findMatch = (arr) => {
let stack = [];
let s3 = -Infinity
for (let i = arr.length - 1; i >= 0; i--) {
if (arr[i] < s3) return true
while (stack.length > 0 && stack[stack.length - 1] < arr[i]) {
s3 = stack.pop()
};
stack.push(arr[i])
};
return false
};
console.log(findMatch(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
false