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

ความยาวของลำดับตัวเลขที่ยาวที่สุดใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

ฟังก์ชันควรค้นหาและส่งกลับความยาวของลำดับการเพิ่มขึ้นที่ต่อเนื่องกันที่ยาวที่สุดที่มีอยู่ในอาร์เรย์ (ต่อเนื่องกันหรือไม่ต่อเนื่องกัน)

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

หากอาร์เรย์อินพุตเป็น −

const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1];

จากนั้นผลลัพธ์ควรเป็น 6 เนื่องจากลำดับที่เพิ่มขึ้นต่อเนื่องกันที่ยาวที่สุดคือ 1, 2, 3, 4,5, 6

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1];
const consecutiveSequence = (arr = []) => {
   const consecutiveRight = {};
   let max = 0;
   for (let i = 0; i < arr.length; i += 1) {
      let curr = arr[i];
      if (consecutiveRight[curr] !== undefined) {
         continue; // We already have this number.
         consecutiveRight[curr] = 1 + (consecutiveRight[curr + 1] || 0);
         while (consecutiveRight[curr - 1] !== undefined) {
            consecutiveRight[curr - 1] = consecutiveRight[curr] + 1;
            curr -= 1;
         }
         max = Math.max(max, consecutiveRight[curr]);
      }
      return max;
};
console.log(consecutiveSequence(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

6