समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
मान लीजिए कि दो सूचकांक, i और j सरणी में हैं जो निम्नलिखित शर्तों को पूरा करते हैं -
-
मैं <जे, और
-
गिरफ्तारी [i] <=गिरफ्तारी [जे]
ऐसे सभी इंडेक्स टुपल्स (i, j) में से, हमारे फ़ंक्शन को अंतर j - i लौटाना चाहिए, जहां यह अधिकतम है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [6, 0, 8, 2, 1, 5];
तब आउटपुट होना चाहिए -
const output = 4;
आउटपुट स्पष्टीकरण
अधिकतम अंतर (i, j) =(1, 5):arr[1] =0 और arr[5] =5 पर हासिल किया जाता है।
उदाहरण
इसके लिए कोड होगा -
const arr = [6, 0, 8, 2, 1, 5]; const maximumDifference = (arr = []) => { let max = 0 const stack = [0] for (let i = 1; i < arr.length; i++) { if (arr[i] < arr[stack[stack.length - 1]]) { stack.push(i) } } for (let i = arr.length - 1; i >= 0; i--) { while (arr[i] >= arr[stack[stack.length - 1]]) { max = Math.max(max, i - stack.pop()) } } return max; }; console.log(maximumDifference(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
4