LintCode:44.最小子数组

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

分析:贪心算法,数组的每个元素都可以加或者不加,从第一个元素开始判断,包括第一个元素时和不包括第一个元素的情况取最小值。

public int minSubArray(List<Integer> nums) {
        // write your code here
        int min=nums.get(0);
        int sum=nums.get(0);
        for(int i=1;i<nums.size();i++){
            //sum+=nums.get(i);
            sum=Math.min(nums.get(i),sum+nums.get(i));  //每个数组元素都可以加或不加,从第一个元素开始判断,包括第一个元素时和不包括第一个元素的情况取最小值
            min=Math.min(min,sum);
        }
        return min;
    }

猜你喜欢

转载自blog.csdn.net/qq_27139155/article/details/80782996