leetcode Maximum Subarray
2015-10-19 15:44
309 查看
题目链接
java的忧伤,是线性时间的也通不过。总说超时。所以我只能抄一个c++提交上去了。其实有个人用java写的答案也是超时的,所以只能说语言不对了
思路:
一个record数组。记录到所以i为止,前面的连续的最大和。。如果是小于零的直接记为0,表示不向前连续,因为前面的和是负的,加上必定是减小的。
java的忧伤,是线性时间的也通不过。总说超时。所以我只能抄一个c++提交上去了。其实有个人用java写的答案也是超时的,所以只能说语言不对了
思路:
一个record数组。记录到所以i为止,前面的连续的最大和。。如果是小于零的直接记为0,表示不向前连续,因为前面的和是负的,加上必定是减小的。
public class Solution { public int maxSubArray(int[] nums) { if(nums.length==0) { return 0; } int record[]=new int[nums.length]; int max=0; if(nums[0]>0) { record[0]=nums[0]; } for(int i=1;i<nums.length;i++) { record[i]=Math.max(0, record[i-1]+nums[i]); if(max>record[i]) { max=record[i]; } } return max; } }
相关文章推荐
- Swift实战入门笔记 -- 大学霸78两章
- UnicodeEncodeError: ‘gbk’ codec can’t encode character
- NSThread的使用
- 算法导论第十章 基本数据结构实现(栈,队列,链表),课后题答案
- 查看linux中某个端口(port)是否被占用(netstat,lsof)
- Oracle中函数、存储过程、触发器
- 经典50例
- leetcode_13_Roman to Integer (easy)
- C#操作Mongodb的心得
- 如何利用cookie实现html页面的记住密码
- 电信免费手机卡iFree黄金版使用须知(四)
- tomcat部署项目
- Android Touch事件分发
- struts2配置文件解析
- 守护线程
- iOS程序启动原理和UIApplication
- 去除空白cell的分割线
- 富文本Attributes详解
- 算法的前提条件
- C与OC、C++的区别