हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहली तर्क के रूप में संख्याओं की एक सरणी, मान लीजिए arr, और दूसरी तर्क के रूप में एक संख्या, मान लीजिए num, लेता है। दूसरी तर्क हमेशा सरणी की लंबाई से छोटी या बराबर होगी। हमारे फ़ंक्शन को सरणी से num संख्या में लगातार तत्व ढूंढने चाहिए जो सबसे अधिक योग देते हैं।
उदाहरण के लिए -
यदि इनपुट हैं -
const arr = [2, 5, 3, 4, 6]; const num = 2
उपरोक्त इनपुट के लिए आउटपुट ऐसा दिखना चाहिए -
const output = 10
क्योंकि 6 और 4 वे दो लगातार तत्व हैं जो सबसे अधिक योग देते हैं।
हम इस समस्या को स्लाइडिंग विंडो तकनीक से रैखिक समय और निरंतर स्थान समाधान में हल कर सकते हैं।
उदाहरण
निम्नलिखित कोड है -
const arr = [2, 5, 3, 4, 6];
// सरणी का योग निकालने के लिए सहायक फ़ंक्शन
const findSum = arr => arr.reduce((acc, val) => acc + val);
const maximumSum = (arr = [], num = 1) => {
let left = 0, right = left + num;
let sum = findSum(arr.slice(left, right));
for (; right <= arr.length; right++, left++) {
sum = Math.max(findSum(arr.slice(left, right)), sum);
}
return sum;
};
console.log(maximumSum(arr, 2));
console.log(maximumSum(arr, 3));आउटपुट
कंसोल पर आउटपुट होगा -
10 12