public class Solution {
/**
* @param nums: a list of integers
* @return: A integer indicate the sum of minimum subarray
*/
public int minSubArray(ArrayList<Integer> nums) {
// 2015-09-09 O(n)
if (nums == null) {
// 抛异常
}
// 从第一个元素到当前元素的和
int sum = 0;
// 各个sum中的最大值
int maxSum = 0;
int rst = Integer.MAX_VALUE;
for (int i = 0; i < nums.size(); i++) {
sum += nums.get(i);
rst = Math.min(rst, sum - maxSum);
maxSum = Math.max(sum, maxSum);
}
return rst;
}
}
[刷题]Minimum Subarray
本文介绍了如何通过O(n)的时间复杂度解决LintCode中的最小子数组求和问题,详细解释了算法的核心思想及实现过程。

被折叠的 条评论
为什么被折叠?



