हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो कुछ पॉजिटिव और नेगेटिव वैल्यूज़ वाले नंबर्स के ऐरे को लेता है। हमें यह निर्धारित करना है कि मूल ऐरे में कोई ऐसा सबऐरे मौजूद है या नहीं जिसका कुल योग 0 है।
हमारा फ़ंक्शन इस आधार पर बूलियन लौटाना चाहिए।
दृष्टिकोण
यहां दृष्टिकोण सरल है। हम for लूप का उपयोग करके ऐरे पर पुनरावृति करते हैं, उस विशेष एलिमेंट तक का संचयी योग निकालते हैं। और यदि किसी भी बिंदु पर संचयी योग 0 हो जाता है या उस वैल्यू को प्राप्त करता है जो उसने पहले प्राप्त की थी, तो 0 योग वाला एक सबऐरे मौजूद है। अन्यथा 0 योग वाला कोई सबऐरे मौजूद नहीं है।
आइए इस फ़ंक्शन के लिए कोड लिखते हैं।
उदाहरण
const arr = [4, 2, -1, 5, -2, -1, -2, -1, 4, -1, 5, -2, 3];
const zeroSum = arr => {
const map = new Map();
let sum = 0;
for(let i = 0; i < arr.length; i++){
sum += arr[i];
if(sum === 0 || map.get(sum)){
return true;
};
map.set(sum, i);
};
return false;
};
console.log(zeroSum(arr));आउटपुट
कंसोल में आउटपुट होगा -
true