53. Maximum Subarray
来源:互联网 发布:arrayslice php 编辑:程序博客网 时间:2024/06/15 05:08
53. Maximum Subarray
题目:
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.
代码如下:
class Solution {public: int maxSubArray(vector<int>& nums) { int const n = nums.size(); int dp[n]; int max_ = nums[0]; dp[0] = nums[0]; for (int i = 1; i < nums.size(); i++) { dp[i] = dp[i - 1] > 0 ? dp[i - 1] + nums[i] : nums[i]; max_ = max(max_, dp[i]); } return max_; }};
解题思路:
- 这是一道典型的动态规划题,为了求整个数组的最大子序列之和,可以先求较小数组的最大子序列之和,可以从左向右计算也可以从右向左计算,效果是一样的;
- 用数组 dp 来记录当前下标之前的最大子序列之和,若要算加上当前数字的较大子序列之和的最大值,就要判断dp[i - 1] 是否大于0,若小于零则那就没有必要加上它,因为这只会拖累子序列的最大和,如果是正数就加上它。
- 反复递归这个过程,用max_来记录此过程中出现的最大值。
阅读全文
0 0
- [LeetCode]53.Maximum Subarray
- LeetCode --- 53. Maximum Subarray
- 53.Maximum Subarray
- [Leetcode] 53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 53.Maximum Subarray
- 53. Maximum Subarray
- 【leetcode】53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 【leetcode】53. Maximum Subarray
- 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- 53. Maximum Subarray
- [LeetCode]53. Maximum Subarray
- 53. Maximum Subarray LeetCode
- 53. Maximum Subarray
- [LeetCode]53. Maximum Subarray
- 53. Maximum Subarray
- Android图片加载框架Glide的使用解析
- linux学习 shell脚本
- ural 1209. 1, 10, 100, 1000... 二分
- 欢迎使用CSDN-markdown编辑器
- tensorflow: tf.assign探究
- 53. Maximum Subarray
- Python设计模式-适配器模式
- ios33款实用库
- 有一种忙,叫做很有希望
- laravel php -S 自定义域名 -t 目录 ,报错 PHP Fatal error: Unknown: Failed opening required 'public/' (include
- ural 1005. Stone Pile dp
- MDS- Multidimensional Scaling 多维尺度法 分析
- TensorFlow API 树 (Python)
- Java GUI编程