最小子数组

来源:互联网 发布:mac 关闭防火墙 编辑:程序博客网 时间:2024/06/05 04:12

题目链接:点击打开链接

本题是求最小子数组,并返回最小和。刚开始不理解子数组的定义,后来知道了子数组必须是连续的,然后用贪心的算法解决。

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;
    }
};

原创粉丝点击