LeetCode Maximum Subarray (最大子段和)
2015-10-29 20:27
225 查看
题意:
给一个序列,求至少含一个元素的最大子段和?
思路:
跟求普通的最大子段和差不多,只不过需要注意一下顺序。由于至少需要一个元素,所以先将ans=nums[0]。接下来可以用sum求和了,如果小于0就重置为0,表示重新开始累加。注意代码中两个if的顺序不可以呼唤。
AC代码
给一个序列,求至少含一个元素的最大子段和?
思路:
跟求普通的最大子段和差不多,只不过需要注意一下顺序。由于至少需要一个元素,所以先将ans=nums[0]。接下来可以用sum求和了,如果小于0就重置为0,表示重新开始累加。注意代码中两个if的顺序不可以呼唤。
class Solution { public: int maxSubArray(vector<int>& nums) { int sum=0, ans=nums[0]; for(int i=0; i<nums.size(); i++) { sum+=nums[i]; if(sum>ans) ans=sum; if(sum<0) sum=0; } return ans; } };
AC代码
相关文章推荐
- Linux命令之用户与组管理
- 二维数组中二分查找
- 线段树学习笔记
- Populating Next Right Pointers in Each Node II
- NOIP模拟10.28总结
- 英语单词state和status的区别
- linux常用命令加实例大全
- 为何机器学习的黄金时代才刚刚来临
- iOS viewController添加导航条以及返回跳转选择
- linux 常用命令
- R语言的基本矩阵运算
- 关于Xcode7以后ARC和MRC的一些问题的解决办法
- Linux硬链接和软链接区别
- android中关于省市县地址大全
- 浅谈堆和栈的区别
- 1014--C语言文法定义
- 数据库设计的三大范式
- 循环语句的使用
- Mac OS 提高工作效率的几个快捷键
- Write Amplification(翻译从维基百科)