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

หาซับอาร์เรย์ติดกันยาวที่สุดด้วย while loop ใน JavaScript

เราต้องเขียนฟังก์ชันด้วย while-statement ที่หาความยาวของซับอาร์เรย์ติดกันที่ใหญ่ที่สุดในอาร์เรย์ของจำนวนเต็มบวก

ตัวอย่างเช่น:

ถ้าอาร์เรย์อินพุตคือ:

const input = [6, 7, 8, 6, 12, 1, 2, 3, 4] --> [1,2,3,4]

ผลลัพธ์ควรเป็น:

4

ถ้าอาร์เรย์อินพุตคือ:

const input = [5, 6, 1, 8, 9, 7] --> [8,9]

ผลลัพธ์ควรเป็น:

2

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:

ตัวอย่างโค้ด

const arr = [6, 7, 8, 6, 12, 1, 2, 3, 4];
const arr1 = [5, 6, 1, 8, 9, 7];

const findLongestSub = arr => {
  let count = 1, len = 0, max = 1;
  while (len < arr.length) {
    if (arr[len] === arr[len - 1] + 1) {
      count++;
      if (max < count) {
        max = count;
      }
    } else {
      count = 1;
    }
    len++;
  }
  return max;
};

console.log(findLongestSub(arr));
console.log(findLongestSub(arr1));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

4 2