53 Maximum Subarray
Posted Carl_Hugo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了53 Maximum Subarray相关的知识,希望对你有一定的参考价值。
https://leetcode.com/problems/maximum-subarray/description/
给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。
例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4],
连续子序列 [4,-1,2,1] 的和最大,为 6。
扩展练习:
若你已实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
解题思路:
边界: dp[0] = nums[0]
状态转移方程: dp[i] = max(dp[i-1]+nums[i],nums[i])
class Solution
//dp[i]=max(dp[i-1]+nums[i],nums[i])
public int maxSubArray(int[] nums)
int n = nums.length;
int[] dp = new int[n];
int max = nums[0];
dp[0]=nums[0];
for(int i=1;i<n;i++)
dp[i]=Math.max(dp[i-1]+nums[i],nums[i]);
if(dp[i]>max)max = dp[i];
return max;
以上是关于53 Maximum Subarray的主要内容,如果未能解决你的问题,请参考以下文章