最小子数组

题意

给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。

注意事项:子数组最少包含一个数字

样例

给出数组[1, -1, -2, 1],返回 -3

思路

该题与 最大子数组 这道题,思路相似,只不过这里是 ArrayList 而已,差距不大。

代码实现

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

原题地址

LintCode:最小子数组

坚持原创技术分享,您的支持将鼓励我继续创作!