เราต้องเขียนฟังก์ชันด้วย 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