leetcode 53 Maximum Subarray

xiaoxiao2021-02-28  89

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.

思路:dp

dp[i]表示一a[i]结尾的最大子数组的和

dp[i]=max(dp[i-1]+a[i],a[i]);

AC代码

public class Solution { public int maxSubArray(int[] nums) { int n=nums.length; int dp[]=new int[n]; dp[0]=nums[0]; int answer=dp[0]; for(int i=1;i<n;i++){ dp[i]=Math.max(dp[i-1]+nums[i],nums[i]); answer=Math.max(dp[i],answer); } return answer; } }

转载请注明原文地址: https://www.6miu.com/read-45804.html

最新回复(0)