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

JavaScript में कदाने के एल्गोरिदम का उपयोग करके उपसरणी का अधिकतम योग ढूंढना

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों (धनात्मक और ऋणात्मक दोनों) की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है।

हमारे फ़ंक्शन को रैखिक समय में किसी भी उपसरणी का अधिकतम योग वापस करना चाहिए।

किसी मनमाने इंडेक्स i पर local_maximum, arr[i] और arr[i] तथा इंडेक्स i-1 पर local_maximum के योग में से अधिकतम होता है।

यही हम एक सरणी के भीतर रैखिक समय में अधिकतम उपसरणी योग खोजने के लिए लागू करने जा रहे हैं।

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

इनपुट

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

आउटपुट

const output = 6;

आउटपुट व्याख्या

क्योंकि अधिकतम योग वाली उपसरणी है -

[4, -1, 2, 1]

उदाहरण

निम्नलिखित कोड है -

const arr = [-2, 1, -3, 4, -1, 2, 1, -5, 4];
const maxSequence = (arr = []) => {
  let currentSum = 0;
  let maxSum = 0;
  for (let elem of arr) {
    const nextSum = currentSum + elem;
    maxSum = Math.max(maxSum, nextSum);
    currentSum = Math.max(nextSum, 0);
  }
  return maxSum;
};
console.log(maxSequence(arr));

आउटपुट

6
  1. - C++ में बाइनरी सर्च दृष्टिकोण का उपयोग करके अधिकतम सबएरे योग ज्ञात करना

    बाइनरी सर्च एक तेज खोज एल्गोरिदम है जिसकी रन-टाइम जटिलता O(log n) है। यह एल्गोरिदम विभाजन और विजय के सिद्धांत पर काम करता है। इस एल्गोरिदम के ठीक से काम करने के लिए, डेटा संग्रह सॉर्टेड रूप में होना चाहिए। बाइनरी सर्च संग्रह के मध्य तत्व की तुलना करके किसी विशेष आइटम को खोजता है। यदि मेल होता है, त

  1. - पायथन का उपयोग करके अधिकतम आरोही सबएरे योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक सकारात्मक मानों की एक सरणी है, हमें nums में एक आरोही सबएरे का अधिकतम संभव योग ढूंढना है। हम कह सकते हैं कि एक सबएरे [nums_l, nums_l+1, ..., nums_r-1, nums_r] आरोही है जब सभी i के लिए जहां l <= i < r, nums_i < nums_i+1। उदाहरण के लिए, यदि इनपुट nums = [15,25,35,5,15,55

  1. - केडेन के एल्गोरिदम का उपयोग करके मैक्सिमम सबएरे प्रॉब्लम को हल करने का पायथन प्रोग्राम

    जब केडेन के एल्गोरिदम का उपयोग करके मैक्सिमम सबएरे खोजना हो, तो एक विधि परिभाषित की जाती है जो सबएरे का मैक्सिमम खोजने में मदद करती है। इटरेटर्स का उपयोग मैक्सिमम सबएरे को ट्रैक करने के लिए किया जाता है। उदाहरण max_seen_till_now: max_seen_till_now = max_end_at_i max_left_ti