LeetCode 53. Maximum Subarray

来源:互联网 发布:淘宝里怎么打开链接 编辑:程序博客网 时间:2024/06/05 23:17

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [−2,1,−3,4,−1,2,1,−5,4],
the contiguous subarray [4,−1,2,1] has the largest sum = 6.

click to show more practice.

More practice:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

Subscribe to see which companies asked this question

最大连续公共序列,采用动态规划,O(N)复杂度,优化后O(1)空间复杂度。

public class Solution {    public int maxSubArray(int[] nums) {        if(nums.length  == 0) return 0;        int lastSum = nums[0];        int max = lastSum;        for(int i = 1; i< nums.length; i++){            lastSum = lastSum > 0 ? lastSum+nums[i]:nums[i];            max = max > lastSum ? max : lastSum;        }        return max;    }}


0 0