# 找到和为零的子数组

# 难度:简单

# 描述:

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

# 样例:

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

# 代码模板:

/**
 * @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

# 想一想再看答案

# 想一想再看答案

# 想一想再看答案

# 代码:

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]));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 点个Star支持我一下~

最后更新时间: 8/2/2019, 12:38:18 PM