給定一個整數(shù)數(shù)組坊萝,找到一個具有最小和的子數(shù)組。返回其最小和许起。
注意事項
子數(shù)組最少包含一個數(shù)字
您在真實的面試中是否遇到過這個題十偶?
Yes
樣例
給出數(shù)組[1, -1, -2, 1],返回 -3
class Solution {
public:
/**
* @param nums: a list of integers
* @return: A integer denote the sum of minimum subarray
*/
int minSubArray(vector<int> nums) {
// write your code here
int sum=0; //記錄當前最小的結(jié)果
int min=0; //記錄最小的結(jié)果
int p_min=nums[0];
int flag=0;
for(int i=0;i<nums.size();i++){
sum=sum+nums[i];
if(sum>0){
sum=0;
}
else{
if(min>sum){
min=sum;
}
}
//記錄數(shù)組中的最小的元素
if(p_min>nums[i]){
p_min=nums[i];
}
if(nums[i]<0){
flag=-1; //如果flag==-1 园细,也就是說明其中有一個元素是負數(shù)
}
}
if(flag==-1){
return min; //這是存在有負數(shù)的情況
}
else{
return p_min; //這是所有元素都為整數(shù)的情況
}
//return min< p_min ? min:p_min;
}
};