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