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

ตัวเลขที่เพิ่มขึ้นอย่างเคร่งครัดสามตัว (ติดต่อกันหรือไม่ติดต่อกัน) ในอาร์เรย์ใน JavaScript


สมมุติว่าเรามีอาร์เรย์ของตัวเลขแบบนี้ −

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