LintCode-44. 最小子数组

题目描述

给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。
注意事项
子数组最少包含一个数字
样例
给出数组[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 min = nums.front(), cur = 0;
        for(int i : nums) {
            if(cur > 0) {
                cur = i;
            } else {
                cur+= i;
            }
            if(min > cur) min = cur;
        }
        return min;
    }
};

你可能感兴趣的:(天梯赛训练)