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

JavaScript में उप-सरणी का अधिकतम सन्निकट योग (Maximum Contiguous Subarray Sum)


हमें एक JavaScript फ़ंक्शन लिखना है जो धनात्मक और ऋणात्मक पूर्णांकों की एक सरणी लेता है। चूंकि सरणी में ऋणात्मक तत्व भी होते हैं, सन्निकट तत्वों का योग संभवतः ऋणात्मक या धनात्मक हो सकता है।

हमारा फ़ंक्शन सरणी से सन्निकट तत्वों की एक सरणी चुनना चाहिए जिसका योग सबसे अधिक हो। अंत में, फ़ंक्शन को वह सरणी वापस करनी चाहिए।

उदाहरण के लिए -

यदि इनपुट सरणी है -

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

तो अधिकतम संभव योग 7 है और आउटपुट उप-सरणी होनी चाहिए -

const output = [4, -1, -2, 1, 5];

उदाहरण

निम्नलिखित कोड देखें:

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

const maximumSubarray = (arr = []) => {
  let max = -Infinity;
  let currentSum = 0;
  let maxStartIndex = 0;
  let maxEndIndex = arr.length - 1;
  let currentStartIndex = 0;
  arr.forEach((currentNumber, currentIndex) => {
    currentSum += currentNumber;
    if (max < currentSum) {
      max = currentSum;
      maxStartIndex = currentStartIndex;
      maxEndIndex = currentIndex;
    }
    if (currentSum < 0) {
      currentSum = 0;
      currentStartIndex = currentIndex + 1;
    }
  });
  return arr.slice(maxStartIndex, maxEndIndex + 1);
};

console.log(maximumSubarray(arr));

आउटपुट

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

[ 4, -1, -2, 1, 5 ]

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

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों (धनात्मक और ऋणात्मक दोनों) की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है। हमारे फ़ंक्शन को रैखिक समय में किसी भी उपसरणी का अधिकतम योग वापस करना चाहिए। किसी मनमाने इंडेक्स i पर local_maximum, arr[i] और arr[i] तथा इंडेक्स i-1 पर lo

  1. - JavaScript में सर्कुलर सरणी में अधिकतम उपसरणी योग

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी, arr, को पहला और एकमात्र तर्क के रूप में लेता है। हम इस सरणी arr को एक सर्कुलर सरणी मान सकते हैं, जिसका अर्थ है कि सरणी का अंतिम तत्व पहले तत्व के बाद आएगा। हमारे फ़ंक्शन को arr की एक गैर-खाली उपसरणी का अधिकतम संभव योग ढूंढकर वापस क

  1. - C++ में सन्निकट सरणी

    मान लीजिए हमारे पास एक बाइनरी सरणी है, हमें समान संख्या में 0 और 1 वाले सन्निकट उपसरणी की अधिकतम लंबाई ढूंढनी है। इसलिए यदि इनपुट [0,1,0] है, तो आउटपुट 2 होगा क्योंकि [0,1] या [1,0] समान संख्या में 0 और 1 वाली सबसे बड़ी सन्निकट सरणी है। हल का दृष्टिकोण इसे हल करने के लिए हम निम्नलिखित चरणों का पाल