Lintcode最大子数组

最大子数组 

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

 注意事项

子数组最少包含一个数

样例

给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6


暴力法:

public class Solution {

    /*
     * @param nums: A list of integers
     * @return: A integer indicate the sum of max subarray
     */
    public int maxSubArray(int[] nums) {
        // write your code here
        int max=-1000000;
        for(int i=0;i             int now =0;        
            for(int j=i;j                 now+=nums[j];
                if(now>max){
                    max=now;
                }
            }
        }
        return max;
    }

}

贪心法:

public class Solution {
    /*
     * @param nums: A list of integers
     * @return: A integer indicate the sum of max subarray
     */
    public int maxSubArray(int[] nums) {
        // write your code here
        int max=-1000000;
        int now =0; 
        for(int i=0;i             now+=nums[i];
                if(now>max){
                    max=now;
                }
                if(now<0){
                    now=0;
                }
            }
        
        return max;
    }
}


你可能感兴趣的:(Lintcode)