最小子数组

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

给出数组[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 s=0;//临时的和
        int m=nums[0];//所求的和
        int n=nums.size();
        for(int i=0;i<n;i++)
        {
         s+=nums[i];       //相加
         if(m>s) {m=s;}  //判断是否比前面的小,是:赋值
         if(s>0) {s=0;}     //如果加起来是个正数,那么S归零,重新计算
         }
    return m;
    }
};

posted on 2017-10-18 21:26  20153868  阅读(117)  评论(0)    收藏  举报

导航