给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
注意事项:子数组最少包含一个数字
给出数组[1, -1, -2, 1]
,返回 -3
该题与 最大子数组 这道题,思路相似,只不过这里是 ArrayList 而已,差距不大。
最小子数组
2017-07-30 | 2018-05-28 | 算法 | 0 | 9
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
注意事项:子数组最少包含一个数字
给出数组[1, -1, -2, 1]
,返回 -3
该题与 最大子数组 这道题,思路相似,只不过这里是 ArrayList 而已,差距不大。
public class Solution {
/**
* @param nums: a list of integers
* @return: A integer indicate the sum of minimum subarray
*/
public int minSubArray(ArrayList<Integer> nums) {
int min = Integer.MAX_VALUE;
int sum = 0;
for (int i = 0; i < nums.size(); i++) {
sum += nums.get(i);
min = sum < min ? sum : min;
sum = sum < 0 ? sum : 0;
}
return min;
}
}