53. Maximum Subarray(dp)

来源:互联网 发布:解数独算法 编辑:程序博客网 时间:2024/06/06 15:49

题目:

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.

如果之前的sum大于0就是对后面有贡献,应该加起来。否则抛弃。

f[j] = max  f[j   1] + S[j], S[j]
target = max  f[j]

代码:

public class Solution {    public int maxSubArray(int[] nums) {        int f=0,result=Integer.MIN_VALUE;        for(int i=0;i<nums.length;i++)        {        f=Math.max(f+nums[i], nums[i]);        result=Math.max(result, f);        }        return result;    }}


0 0
原创粉丝点击