[leetcode] 53. Maximum Subarray
来源:互联网 发布:as3 调用js 编辑:程序博客网 时间:2024/06/18 05:51
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
.
解法一:
O(n)的解法。用一个global表示全局最大,一个local表示局部最大。那么局部最大的表达式是local = max(local+nums[i], nums[i]),也就是如果之前的局部最大为负数,不如不要,直接只用nums[i]。然后全局最优就是之前global和当前局部最优的max。
class Solution {public: int maxSubArray(vector<int>& nums) { int global = nums[0], local = nums[0]; for(int i=1; i<nums.size(); i++){ local = max(local+nums[i], nums[i]); global = max(global, local); } return global; }};
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
- 测试的流程及测试职责
- 欢迎使用CSDN-markdown编辑器
- Recyclerview的自定义点击事件
- 一个数组中,除了有两个数字只出现一次外,其他数字都出现两次,求出这两个出现一次的数字
- handler的使用实例
- [leetcode] 53. Maximum Subarray
- 【51Nod】1119 - 机器人走方格V2(逆元 & 费马小定理 & 快速幂)
- c# 远程连接数据库方法
- concurrentHashMap学习(二)
- JAVA命名习惯
- iOS APP性能优化
- iOS-多媒体
- 通过反射获取类内部定义信息
- 线程池ThreadPoolExecutor简例