[week 8][Leetcode][Dynamic Programming] Maximum Subarray
来源:互联网 发布:adobe xd for mac 编辑:程序博客网 时间:2024/05/22 14:38
- Question:
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
.
- Analysis:
这道题求解最大连续子序列和,这可以用枚举法和分治法以及动态规划,使用动态规划解题会更简单于是这里使用的是动态规划。对题目进行解析,状态为子序列,从最左边开始遍历整个序列,每一个子序列有两种情况,一种是和大于0,另一种是和小于等于0,那么序列小于等于0时可以认为是对后面序列和没有贡献的,所以不再加入到后续的序列中。设f[j]为当前状态,表示以D[j]结尾的最大连续子序列和,由此可以得到状态转移方程为:f[j]=max{f[j]+D[j],D[j]}.
- Code:
class Solution {public: int maxSubArray(vector<int>& nums) { int result = INT_MIN; int f = 0; for (int i=0;i<nums.size();i++) { f = max(f+nums[i],nums[i]); result = max(result,f); } return result; }};
阅读全文
0 0
- [week 8][Leetcode][Dynamic Programming] Maximum Subarray
- LeetCode[Dynamic Programming]: Maximum Product Subarray
- LeetCode 53. Maximum Subarray(dynamic programming)
- Dynamic Programming:53. Maximum Subarray
- LeetCode: -Dynamic Programming-Maximum Subarray[53]-子数组最大和
- [leetcode Maximum Subarray]week 19
- leetCode刷题归纳-Dynamic Programming(53. Maximum Subarray&& 152. Maximum Product Subarray)
- implement the maximum subarray using dynamic programming
- 152. Maximum Product Subarray dynamic programming
- (M)Dynamic Programming:152. Maximum Product Subarray
- ※ Leetcode - Dynamic Programming - 53.Maximum Subarray(最大连续和)+152.Maximum Product Subarray(最大连续积)
- [Leetcode刷题总结系列][Dynamic programming][Divide-and-conquer]53.Maximum Subarray
- LeetCode-Easy部分中标签为 Dynamic Programming(DP) 53. Maximum Subarray
- [week 7][Leetcode][Dynamic Programming]Triangle
- [week 10][Leetcode][Dynamic Programming] Climbing Stairs
- [week 11][Leetcode][Dynamic Programming] House Robber
- [week 12][Leetcode][Dynamic Programming] Unique Paths
- LeetCode: -Dynamic Programming-Continuous Subarray Sum[523]
- Scene(场景)的使用
- Activity#finish() 对其生命周期的影响
- Intellij idea項目中无法创建scala class的解决办法
- OkHttp3的使用
- JavaScript 基础1
- [week 8][Leetcode][Dynamic Programming] Maximum Subarray
- 波纹动画
- Java并发编程基础
- Semaphore 源码分析
- iOS学习之 plist文件的读存
- jdk的配置
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 【干货】Kaggle 数据挖掘比赛经验分享
- android修改包名。