[leetcode]53. Maximum Subarray
来源:互联网 发布:storm1.0java源码 编辑:程序博客网 时间:2024/06/07 06:31
divide and conquer
题目:
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.
思路:
子串与子序列:子串是指数组中连续的若干个元素。而子序列仅仅要求各元素的顺序与其在数组中一致,而没有连续的要求。对于一个元素数为n的数组,其含有2^n个子序列和n(n+1)/2个子串。
例如:一个字符串 awbcdewgh
子串: awbc. awbcd awbcde ….很多个子串,但是都是连续在一起
子序列: abc . abcd abcde … 很多个子序列,但是子序列中的字符在字符串中不一定是连在一起的, 但是子序列一定是单调的, (即字符之间ASCII单调递增或单调递减)
动态规划
遍历整个数组,dp[i]记录以nums[i]为结尾的连续的数的段的和的最大值,即dp[i] = max(nums[i], dp[i-1]+nums[i])。然后用max记录dp[i]的最大值。
class Solution {public: int maxSubArray(vector<int>& nums) { vector<int> dp(nums.size()); int m = nums[0]; dp[0] = nums[0]; for (int i = 1; i < nums.size(); i++) { dp[i] = max(nums[i], dp[i-1]+nums[i]); m = max(m, dp[i]); } return m; }};
阅读全文
0 0
- [LeetCode]53.Maximum Subarray
- LeetCode --- 53. Maximum Subarray
- [Leetcode] 53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 【leetcode】53. Maximum Subarray
- [leetcode] 53.Maximum Subarray
- 【leetcode】53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- [LeetCode]53. Maximum Subarray
- 53. Maximum Subarray LeetCode
- [LeetCode]53. Maximum Subarray
- leetcode 53. Maximum Subarray
- [leetcode] 53. Maximum Subarray
- LeetCode *** 53. Maximum Subarray
- 【LeetCode】53. Maximum Subarray
- leetcode 53. Maximum Subarray
- LeetCode 53. Maximum Subarray
- Leetcode:53. Maximum Subarray
- C++写窗口界面
- Android逆向之某拜蓝牙开锁原理探究
- mysql数据的安装以及数据库的操作
- 2017年ICPC亚洲区域赛青岛站
- Azkaban安装示例
- [leetcode]53. Maximum Subarray
- 探索多态的实现--虚表
- 动画属性及布局属性
- p层
- Java实验之接口2
- 712. Minimum ASCII Delete Sum for Two Strings
- 第一章:认识Scratch 第一课 什么是编程,什么是计算机语言?
- Python 序列之元组
- 欢迎使用CSDN-markdown编辑器