কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অ্যারেতে ফিবোনাচি সিকোয়েন্স খুঁজে বের করা


ফিবোনাচি সিকোয়েন্স:

একটি সিকোয়েন্স X₁, X₂, ..., Xₙ ফিবোনাচি হলে:

  • n ≥ 3
  • Xᵢ + Xᵢ₊₁ = Xᵢ₊₂ সব i+2 ≤ n এর জন্য

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যার অ্যারে arr প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে। ফাংশনটি অ্যারে arr-এ বিদ্যমান সর্বোচ্চ দৈর্ঘ্যের ফিবোনাচি সাবসিকোয়েন্স খুঁজে বের করবে এবং এর দৈর্ঘ্য ফেরত দেবে।

একটি সাবসিকোয়েন্স অন্য একটি সিকোয়েন্স arr- থেকে যেকোনো সংখ্যক উপাদান (কোনোটাও না) মুছে ফেলা থেকে তৈরি হয়, বাকি উপাদানগুলোর ক্রম বদলে না।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const arr = [1, 3, 7, 11, 14, 25, 39];

আউটপুট

const output = 5;

আউটপুট ব্যাখ্যা

কারণ সর্বোচ্চ ফিবোনাচি সাবসিকোয়েন্স হল [3, 11, 14, 25, 39]

নিচে কোডটি দেওয়া হল:

উদাহরণ

const arr = [1, 3, 7, 11, 14, 25, 39]; 
const longestFibonacci = (arr = []) => { 
  const map = arr.reduce((acc, num, index) => { 
    acc[num] = index; 
    return acc; 
  }, {}); 
  const memo = arr.map(() => arr.map(() => 0)); 
  let max = 0; 
  for (let i = 0; i < arr.length; i++) { 
    for (let j = i + 1; j < arr.length; j++) { 
      const a = arr[i]; 
      const b = arr[j]; 
      const index = map[b - a]; 
      if (index < i) { 
        memo[i][j] = memo[index][i] + 1; 
      } 
      max = Math.max(max, memo[i][j]); 
    } 
  } 
  return max > 0 ? max + 2 : 0; 
}; 
console.log(longestFibonacci(arr));

আউটপুট

5

  1. জাভাস্ক্রিপ্টে অ্যারেতে মাউন্টেন সাবঅ্যারের সর্বোচ্চ দৈর্ঘ্য

  2. জাভাস্ক্রিপ্টে কেন্দ্রকেন্দ্রিক শীর্ষবিন্দুযুক্ত অ্যারেতে শীর্ষ খুঁজে বের করা

  3. জাভাস্ক্রিপ্টে অ্যারেতে মিডিয়ান সূচক খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে অ্যারে একদম কমপক্ষে একটি এলিমেন্ট বদলে ক্রমবর্ধমান করা যায় কিনা