item31,连续子数组的最大和
2016-06-23 21:58
211 查看
整型数组,元素有正数和负数。数组中一个或连续的多个整数组成一个子数组,求所有子数组中最大值。
===========
动态规划,
状态转移方程,max[].size = nums.size()
max[i]= max[i-1]+nums[i],if max[i-1]>0
nums[i], if max[i-1]<=0
这样的max[]中存放就是由所有的子数组和,另外我们可以在产生每个子数组的时候,记住最大的那个数就可以了。
======================
代码:
===========
动态规划,
状态转移方程,max[].size = nums.size()
max[i]= max[i-1]+nums[i],if max[i-1]>0
nums[i], if max[i-1]<=0
这样的max[]中存放就是由所有的子数组和,另外我们可以在产生每个子数组的时候,记住最大的那个数就可以了。
======================
代码:
int findGreatestSumOfSubArray(int *data,int length){ /** f(i): */ if(data==nullptr || length<=0){ return 0; } int fi = data[0]; int Greatest = data[0]; for(int i = 1;i<length;i++){ if(fi>0){ fi = fi+data[i]; }else{ fi = data[i]; } Greatest = fi>Greatest? fi:Greatest; } return Greatest; }///end-function
相关文章推荐
- Android Https相关完全解析 当OkHttp遇到Https
- 使用memcached实现tomcat集群中Session共享业务场景
- markdown 学习笔记
- JDBC提示错误
- Java数组类型转换
- 如何将Unity中的脚本文件转为dll文件
- github项目解析(七)-->防止按钮重复点击
- 关于最近使用imageMagick的Jmagick和im4java
- LeetCode第47.题之Permutations II
- “再按一次返回键退出程序”实现
- 个人总结
- 【设计模式】传输对象模式
- BZOJ1088: [SCOI2005]扫雷Mine
- 答疑java集合问题
- 编程之美-看看出了什么问题?
- 用“辗转相除法”求最大公约数
- 盲打首秀
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Docker学习笔记-数据卷、数据卷容器
- Docker学习笔记-数据卷、数据卷容器