描述
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
子数组最少包含一个数字
您在真实的面试中是否遇到过这个题?
是
样例
给出数组[1, -1, -2, 1],返回 -3
雷同与最大子数组的方法,稍作修改即可。
class Solution { public: /* * @param nums: a list of integers * @return: A integer indicate the sum of minimum subarray */ int minSubArray(vector<int> &nums) { // write your code here int m_min=nums[0]; int count=0; int i=0; for(;i<nums.size();i++){ if(nums[i]>0) m_min=min(m_min,nums[i]); else break; } for(;i<nums.size();i++){ count+=nums[i]; if(count<m_min) m_min=count; if(count>0) count=0; } return m_min; } };