动态规划之Maximum Subarray
来源:互联网 发布:html时间轴 demo 源码 编辑:程序博客网 时间:2024/05/29 11:50
题目描述如下:
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最大的连续子串,可知当当前sum<0时,下一次计算之后的求和值肯定小于下一个值,推出关系式为dp[i] = Math.max(sum,0) + nums[i];
因为将dp初始化为int[nums.length+1],所以实际的递推关系式为dp[i]=Math.max(sum,0) + nums[i-1];
代码如下:
public class Solution {
public int maxSubArray(int[] nums) {
int len = nums.length;
int[] dp = new int[len + 1];
int max = Integer.MIN_VALUE;
for(int i = 1; i <= len; i++){
dp[i] = Math.max(dp[i - 1], 0) + nums[i - 1];
if(dp[i] > max)
max = dp[i];
}
return max;
}
}
0 0
- 动态规划之Maximum Subarray
- Leetcode 动态规划 Maximum Subarray
- leetcode---Maximum Subarray---动态规划
- leetcode动态规划专杀之53. Maximum Subarray
- 54.Maximum Subarray(动态规划)
- 152. Maximum Product Subarray 动态规划
- 【Leetcode】53. Maximum Subarray【动态规划】
- 【Leetcode】152. Maximum Product Subarray 【动态规划】
- 53. Maximum Subarray-动态规划/分治
- 11.【动态规划】Maximum Subarray--Accepted code
- leetcode-53-Maximum Subarray 动态规划
- [leetCode]53. Maximum Subarray&&动态规划
- [LeetCode]53. Maximum Subarray (动态规划)
- (动态规划)LeetCode#152. Maximum Product Subarray
- 13.2—动态规划—Maximum Subarray
- 动态规划解152. Maximum Product Subarray
- 用动态规划解决(maximum sum subarray and maximum product subarray)
- leetcode做题总结,动态规划II(Maximum Subarray, Maximum Product Subarray)
- 【LCA】HDU 5296 Annoying problem
- JAVA编程
- 技术人生:故事之四十三解决方案时代
- 三条边组成三角形
- Codevs 3728 联合权值
- 动态规划之Maximum Subarray
- 软件生命周期(SDLC)的六个阶段
- Session的生命周期
- android验证码识别以及判断内容是否为空
- 技术人生:故事之四十四服务时代
- error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thisca
- 线性表概念
- Docker命令行探秘
- andriod PullToRefresh的使用 构建下拉刷新的listView