কম্পিউটার

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


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

একটি ক্রম X_1, X_2, ..., X_n হল ফিবোনাচি যদি:

  • n>=3

  • X_i + X_{i+1} =X_{i+2} সমস্ত i + 2 <=n

    এর জন্য

সমস্যা

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

বাকি উপাদানের ক্রম পরিবর্তন না করেই 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. জাভাস্ক্রিপ্টে অ্যারেকে ক্রমবর্ধমান অনুক্রমে রূপান্তর করা হচ্ছে