Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट का उपयोग करके एक सरणी में फाइबोनैचि अनुक्रम ढूँढना

<घंटा/>

फाइबोनैचि अनुक्रम:

अनुक्रम X_1, X_2, ..., X_n फाइबोनैचि है यदि:

  • n>=3

  • X_i + X_{i+1} =X_{i+2} सभी के लिए i + 2 <=n

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को सरणी गिरफ्तारी में मौजूद सबसे लंबे फाइबोनैचि अनुक्रम की लंबाई को ढूंढना और वापस करना चाहिए।

शेष तत्वों के क्रम को बदले बिना, गिरफ्तारी से किसी भी संख्या में तत्वों (कोई नहीं सहित) को हटाकर किसी अन्य अनुक्रम गिरफ्तारी से एक अनुक्रम प्राप्त किया जाता है।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

इनपुट

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. जावास्क्रिप्ट में एक केंद्रीय चोटी वाली सरणी की चोटी ढूँढना

    बीच में चोटी वाली सरणी हम किसी ऐरे एर को सेंट्रली पीक्ड ऐरे . कहते हैं यदि निम्नलिखित गुण धारण करते हैं - =3 0

  1. जावास्क्रिप्ट में सरणी की औसत अनुक्रमणिका ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एक सरणी लेता है, एआर, जो एक-आयामी अंतरिक्ष में विभिन्न क्षुद्रग्रहों की स्थिति का प्रतिनिधित्व करता है। प्रत्येक क्षुद्रग्रह के लिए, निरपेक्ष मान उसके आकार का प्रतिनिधित्व करता है, और चिन्ह उसकी दिशा का प्रतिनिधित्व करता है (सकारात्मक अर्थ दा

  1. जावास्क्रिप्ट में बढ़ते क्रम में सरणी को परिवर्तित करना

    बढ़ते क्रम हम एक सरणी को बढ़ते हुए परिभाषित करते हैं यदि arr[i] <=arr[i + 1] प्रत्येक i (0-आधारित) के लिए धारण करता है जैसे कि (0 <=i <=n - 2)। समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को यह नि