在原始数组中检查和为 0 的子数组 JavaScript
我们要求编写一个 JavaScript 函数,该函数接受一个包含某些正值和负值的数字数组。我们需要确定原始数组中是否存在和为 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP