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

JavaScript में डायनामिक प्रोग्रामिंग - एलिमेंट्स का पार्ट सम


मान लीजिए, हमारे पास नंबर्स का ऐसा ऐरे है:

const arr = [1, 2, 3, 4, 5];

हर बार एक एलिमेंट कम लेते हुए, इस ऐरे को इस तरह अलग किया जा सकता है:

[1, 2, 3, 4, 5] [2, 3, 4, 5] [3, 4, 5] [4, 5] [5] []

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसा ऐरे लेता है। फ़ंक्शन को ऊपर वर्णित तरीके से ऐरे को अलग करना चाहिए।

फ़ंक्शन को फिर इन पार्ट्स के संबंधित योगों वाला एक ऐरे बनाना चाहिए और उस ऐरे को लौटाना चाहिए।

इसलिए, इस ऐरे के लिए आउटपुट इस तरह दिखना चाहिए:

const output = [15, 14, 12, 9, 5 0];

हम इस समस्या को हल करने के लिए डायनामिक प्रोग्रामिंग का उपयोग करेंगे। हम पहले पूरे ऐरे का योग O(n) समय में निकालेंगे, जो अंततः ऐरे का पहला एलिमेंट बन जाएगा। फिर दूसरी इटरेशन में, हम संबंधित एलिमेंट्स को घटाते रहेंगे ताकि आउटपुट ऐरे के एलिमेंट्स प्राप्त हो सकें। इस तरह हम इस समस्या को O(n) समय और O(1) स्पेस में हल कर सकते हैं।

उदाहरण

const arr = [1, 2, 3, 4, 5]; const sumArray = (arr = []) => arr.reduce((a, b) => a + b, 0); const partialSum = (arr = []) => {    let sum = sumArray(arr);    const res = [sum];    for(let i = 0;    i < arr.length; i++){       const el = arr[i];       sum -= el;       res.push(sum);    };    return res; }; console.log(partialSum(arr));

आउटपुट

इससे निम्नलिखित आउटपुट प्राप्त होगा:

[ 15, 14, 12, 9, 5, 0 ]

  1. - JavaScript में सरणी तत्वों को पुनर्व्यवस्थित करना

    समस्या JavaScript फ़ंक्शन जो पहले और एकमात्र आर्गुमेंट के रूप में literals की एक सरणी arr लेता है। इस सरणी में कुछ डुप्लिकेट आसन्न रूप से रखे गए हैं। हमारे फ़ंक्शन को सरणी के तत्वों को इस तरह पुनर्व्यवस्थित करना चाहिए कि सरणी में कोई दो तत्व समान न हों। हमारे फ़ंक्शन को पुनर्व्यवस्थित सरणी वापस करन

  1. - JavaScript में सरणी के तत्वों को पुनर्व्यवस्थित करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को पहले और एकमात्र आर्गुमेंट के रूप में लेता है। सरणी arr हमेशा सम लंबाई की होगी। हमारे फ़ंक्शन को true वापस करना चाहिए यदि और केवल यदि इसे पुनः क्रमबद्ध करना संभव है जैसे कि arr[2 * i + 1] = 2 * arr[2 * i] हर 0 <= i < length(arr

  1. - जावास्क्रिप्ट में द्वि-आयामी सरणी के तत्वों का वैकल्पिक योग

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो m X n क्रम की संख्याओं की एक 2-आयामी सरणी लेता है जिसमें समान संख्या में पंक्तियां और स्तंभ होते हैं। इस सरणी के लिए, हमारा फ़ंक्शन निम्न योग की गणना करके लौटाएगा:$\sum_{i=1}^m \sum_{j=1}^n (-1)^{i+j}a_{ij}$उदाहरणनिम्न कोड देखें:const arr = [   &n