สมมุติว่าเรามีอาร์เรย์ของตัวเลขแบบนี้ −
const arr = [4, 7, 4, 8, 9, 3];
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขดังกล่าว ฟังก์ชันควรค้นหาตัวเลขสามตัวดังกล่าวจากอาร์เรย์ที่มีดัชนีและขนาดของตัวเลขอยู่ในลำดับที่เพิ่มขึ้นอย่างเคร่งครัด (ติดต่อกันหรือไม่ติดต่อกัน)
ตัวอย่างเช่น ในอาร์เรย์ด้านบน ตัวเลข 7, 8 และ 9 มีดัชนี 1, 3 และ 4 ตัวเลขเหล่านี้เป็นไปตามเงื่อนไขทั้งสอง ดังนั้นฟังก์ชันของเราควรคืนค่าเป็นจริงสำหรับอาร์เรย์นี้
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
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