leetcode No53. Maximum Subarray
来源:互联网 发布:时时彩两期计划软件 编辑:程序博客网 时间:2024/04/29 19:47
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
.
Algorithm:
Kadane算法,时间复杂度为O(n),将数组从左到右分割为若干子串,使得除了最后一个子串之外,其余子串的各元素之和小于0。
代码中如果前一段子数组的和小于0,那么就丢弃它。
Accepted Code:
class Solution {public: int maxSubArray(vector<int>& nums) { int max_sub=0; int max_cur=0; int max_neg=0; //防止出现全为负数 int flag=0; //全为负数标志位 int first=0; //第一个负数 for(int i=0;i<nums.size();i++) { max_cur+=nums[i]; if(max_cur>max_sub) max_sub=max_cur; if(max_cur<0) max_cur=0; if(nums[i]>=0&&flag==0) flag=1; else if(nums[i]<0&&flag==0) { if(first==0) { first=1; max_neg=nums[i]; } else if(max_neg<nums[i]) max_neg=nums[i]; } } if(flag==0)return max_neg; return max_sub; }};
0 0
- leetcode No53. Maximum Subarray
- LeetCode Problem NO53. Maximum Subarray
- 【LeetCode】Maximum Subarray 和 Maximum Product Subarray
- LeetCode: Maximum Subarray
- LeetCode Maximum Subarray
- [Leetcode] Maximum Subarray
- LeetCode: Maximum Subarray
- leetcode 25: Maximum Subarray
- [LeetCode] Maximum Subarray
- [Leetcode] Maximum Subarray
- [LeetCode]Maximum Subarray
- [leetcode]Maximum Subarray
- LeetCode-Maximum Subarray
- [leetcode] Maximum Subarray
- LeetCode 45: Maximum Subarray
- LeetCode - Maximum Subarray
- LeetCode:Maximum Subarray
- LeetCode 53: Maximum Subarray
- 不带表头的单向链表,带表头的单向链表,带表头的单向循环链表,带表头的双向循环链表。
- OSG帮助文档生成
- FreeMark 学习笔记
- TCP/IP协议(2)——数据链路层
- java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream问题的解决
- leetcode No53. Maximum Subarray
- R语言 变量的操作函数
- Unity 5 physX CPU 水印去除
- ES6新特性概览
- 安装maven时安照说明配置环境变量JAVA_HOME
- Windows 下 配置 ngrok ngrok使用教程
- Android---OnTrimMemory优化
- Jetty源码分析
- Classifying with K-Nearest Neighbors