Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

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

สมมติว่ามีอาร์เรย์ของตัวเลขดังนี้:

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