हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में संख्याओं की एक सरणी लेता है, मान लें कि गिरफ्तारी, और एक संख्या, मान लें कि संख्या, दूसरे तर्क के रूप में। फ़ंक्शन को सबसे लंबे सबअरे (सन्निहित या गैर-सन्निहित) की लंबाई को खोजना और वापस करना चाहिए, जिसकी प्रत्येक जोड़ी में संख्या से कम या उसके बराबर का पूर्ण अंतर होता है।
उदाहरण के लिए, यदि इनपुट ऐरे और नंबर हैं -
const arr = [7, 9, 8, 6, 6, 3]; const num = 1;
तब आउटपुट होना चाहिए -
const output = 3,
क्योंकि वांछित उप-सरणी [7, 6, 6]
. हैउदाहरण
इसके लिए कोड होगा -
const arr = [7, 9, 8, 6, 6, 3]; const maximumSubarray = (arr = [], num = 1) => { if(!arr.length){ return 0; }; const maximum = arr.reduce((acc, val) => Math.max(acc, val)); const buckets = new Array(maximum + 1); buckets.fill(0); const { length } = arr; for(let i=0; i< length; i++){ buckets[arr[i]] += num; }; let max = 0; for(let j=1; j< maximum + 1; j++) { let curr = buckets[j]; let prev = buckets[j - 1]; if(prev != 0 && prev + curr > max) { max = prev + curr; }; }; return max; }; console.log(maximumSubarray(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
3