Minimum Subarray
最后更新于:2022-04-02 01:14:15
# Minimum Subarray
### Source
- lintcode: [(44) Minimum Subarray](http://www.lintcode.com/en/problem/minimum-subarray/)
~~~
Given an array of integers, find the subarray with smallest sum.
Return the sum of the subarray.
Example
For [1, -1, -2, 1], return -3
Note
The subarray should contain at least one integer.
~~~
### 题解
题 [Maximum Subarray](http://algorithm.yuanbin.me/zh-cn/dynamic_programming/maximum_subarray.html) 的变形,使用区间和容易理解和实现。
### Java
~~~
public class Solution {
/**
* @param nums: a list of integers
* @return: A integer indicate the sum of minimum subarray
*/
public int minSubArray(ArrayList nums) {
if (nums == null || nums.isEmpty()) return -1;
int sum = 0, maxSum = 0, minSub = Integer.MAX_VALUE;
for (int num : nums) {
maxSum = Math.max(maxSum, sum);
sum += num;
minSub = Math.min(minSub, sum - maxSum);
}
return minSub;
}
}
~~~
### 源码分析
略
### 复杂度分析
略
';