来源
简单描述
给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置
样例
样例 1:
输入: [-3, 1, 2, -3, 4]
输出: [0,2] 或 [1,3]
样例解释: 返回任意一段和为0的区间即可。
样例 2:
输入: [-3, 1, -4, 2, -3, 4]
输出: [1,5]
算法思路
算法思路还是比较简单的,就是想办法记住开始下标和结束下标就OK了,我实现用的是双重循环
代码实现
public List<Integer> subarraySum(int[] nums) {
// write your code here
int sum;
List<Integer> result = new ArrayList<>();
for (int i = 0;i < nums.length ;i++ ){
sum = 0;
for(int j = i; j < nums.length ;j++ ){
sum = sum + nums[j];
if (sum == 0) {
result.add(i);
result.add(j);
return result;
}
}
}
return null;
}