美文网首页
44. 最小子数组

44. 最小子数组

作者: 李清依 | 来源:发表于2017-12-20 23:44 被阅读0次

    1. 最小子数组

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

    注意事项

    子数组最少包含一个数字

    您在真实的面试中是否遇到过这个题?

    Yes

    样例

    给出数组[1, -1, -2, 1],返回 -3

    标签

    相关题目
    思路:定义一个当前sum和上一个最小的sum,因为是求最小组和嘛!所以如果当前sum<0就继续加,并且接下来要和上一个最小的sum比较求最小值,而大于0的话就要重新赋值nums[i]给它。
    AC代码:

    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 currentSum=0;//当前sum
            int maxSum=99999;//上一个最小sum
            for(int i=0;i<nums.size();i++){
                if (currentSum < 0) {  
                    currentSum += nums[i];  
                }else {  
                    currentSum = nums[i]; 
                }  
                maxSum =min(maxSum, currentSum);
            }
            return maxSum;
        }
    };
    

    相关文章

      网友评论

          本文标题:44. 最小子数组

          本文链接:https://www.haomeiwen.com/subject/ozxowxtx.html