算法_找到和为零的子数组

找到和为零的子数组

难度:简单

描述:

给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置

样例:

给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3]

代码模板:

1
2
3
4
5
/**
* @param nums: A list of integers
* @return: A list of integers includes the index of the first number and the index of the last number
*/
const subarraySum = function(nums) {};

想一想再看答案

想一想再看答案

想一想再看答案

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const subarraySum = function(nums) {
let [total, res] = [0, []]; // 和,结果
for (let i = 0; i < nums.length; i++) {
res = [];
res[0] = i; // 保存起始位置
// 需要第二层循环 可能第一个元素直到最后和也不是0 那么需要从第二个元素再找 以此类推
for (let j = i; j < nums.length; j++) {
total = total - nums[j]; // 不断减去每个元素 直到结果为0
if (total === 0) {
res[1] = j; // 保存第二个下标
return res; // 返回起始和结束的下标
}
}
}
return false; // 没找到
};
console.log(subarraySum([-3, 1, 2, -3, 4]));

鼓励我一下:

觉得还不错的话,给我的点个star

听说,打赏我的人最后都找到了真爱。