Leetcode:53. Maximum Subarray
2016-05-01 10:14
281 查看
AC 4ms
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array
the contiguous 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.
一开时觉得挺麻烦,分配了一个数组来存储
0~n-1所有位置的最大值,每次遇到新的正值的时候根据dp存的值和存储最大序列的下标回朔运算,最后想想,可疑把每个非负块当成一个独立的元素块,如果遇到小于0的块直接扔掉就好了,然后从下一个重新计算,记录最大值。
过程大概是这样子的
nums | −2 | 1 | -3 | 4 | −1 | 2 | 1 | −5 | 4 |
---|---|---|---|---|---|---|---|---|---|
ans | 0 | 1 | 1 | 4 | 4 | 5 | 6 | ||
sum | 0 | 1 | 0 | 4 | 3 | 5 | 6 |
int maxSubArray(int* nums, int numsSize) { int ans=nums[0],i,j,sum=0; for(i=0;i<numsSize;i++){ sum+=nums[i]; ans=sum>ans?sum:ans; sum=sum>0?sum:0; } return ans; }
相关文章推荐
- 二叉树的建立与遍历
- 洗牌算法
- 求若干数的最大公约数
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- [置顶] mxGraph进阶(一)mxGraph教程-开发入门指南
- mxGraph进阶(一)mxGraph教程-开发入门指南
- 第一个C++程序
- 算法二
- 判断单链表是否带环,若带环,求环的长度,求环的入口点
- 《final修饰基本类型变量和引用类型变量的区别》
- 十一、图的存储---(4)邻接表的构造和使用
- memcache安装使用
- 银行家算法结束条件的合理性证明
- LNMP(linux+nginx+mysql+php)服务器环境配置
- :hidden选择器
- java之String的基本用法
- 二分
- ajax的参数详解
- XAMPP 虚拟主机设置
- CentOS 6.3下rsync服务器的安装与配置