আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা কিছু ধনাত্মক ও ঋণাত্মক মান সহ একটি সংখ্যার অ্যারে নেবে। আমাদের নির্ধারণ করতে হবে মূল অ্যারেতে এমন কোনো সাবঅ্যারে আছে কিনা যার নেট যোগফল ০।
আমাদের ফাংশনটি এই ভিত্তিতে একটি বুলিয়ান ফেরত দেবে।
অ্যাপ্রোচ
এখানে অ্যাপ্রোচটি সহজ। আমরা একটি ফর লুপ ব্যবহার করে অ্যারেটি ইটারেট করব, সেই নির্দিষ্ট উপাদান পর্যন্ত ক্যుమুলেটিভ যোগফল ক্যালকুলেট করব। এবং যদি যেকোনো সময় ক্যুমুলেটিভ যোগফল ০ হয় বা পূর্বে প্রাপ্ত কোনো মান আবার পায়, তবে ০ যোগফলের একটি সাবঅ্যারে আছে। অন্যথায় ০ যোগফলের কোনো সাবঅ্যারে নেই।
সেজন্য, এই ফাংশনের কোড লিখি:
উদাহরণ
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