# 找到和为零的子数组

# 难度:简单

# 描述:

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

# 样例:

给出 [-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支持我一下~