编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
来源:互联网 发布:mac 便签 放在桌面 编辑:程序博客网 时间:2024/05/22 22:56
整体思路:
问题的解可以分为两种情况:
1)解没有跨过A[n-1]到A[0],即普通的求子数组和的最大值
2)解跨过A[n-1]到A[0]
对第二种情况,只要找到从A[0]开始和最大的一段(A[0],...,A[j])(0<=j<n)以及A[n-1]结尾的和最大的一段(A[i],...,A[n-1])(0<=i<n),那么第2种情况中,和的最大值M_2为:
M_2=A[i]+...A[n-1]+A[0]+...+A[j]
如果i<=j,则
M_2=A[0]+...+A[n-1] - 子数组和为负的最小值(数组元素全为正则返回0)
否则
M_2=A[0]+...+A[j]+A[i]+...+A[n-1]
代码如下,其中也分了A[0]+...+A[n-1]全为负的时候返回0(代码中define RETURN_ZERP)跟返回最大的负数(RETURN_MAXMINUS)这两种情况,lpos对应于整体思路中的i,rpos对应于整体思路中的j
- 编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
- 编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
- 编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
- 求子数组之和的最大值——编程之美 2.14 扩展问题 正确实现
- 编程之美--求数组的子数组之和的最大值--扩展问题
- 编程之美 求数组的子数组之和的最大值(包含扩展问题解答)
- 编程之美2.14 子数组之和的最大值 扩展问题(首尾相连)
- 编程之美2.14 求子数组和的最大值(首尾相连)
- 编程之美2.14扩展问题2 求数组的子数组之和的最大值并给出子数组的起始终止位置
- 编程之美2.14扩展问题2 求数组的子数组之和的最大值并给出子数组的起始终止位置
- 编程之美2.14求子数组之和的最大值
- [编程之美2.14]求子数组之和的最大值
- 编程之美(2.14)——求数组的子数组之和最大值
- 编程之美--求子数组之和的最大值
- LeetCode Maximum Subarray和编程之美 求数组的子数组之和的最大值
- 读书笔记之编程之美 - 2.14 求数组的子数组之和的最大值
- 编程之美之2.14 求数组的子数组之和的最大值
- 编程之美 2.14 数组的子数组之和的最大值 扩展题2
- STL 头文件一览表
- 顺序列表的操作
- Aptana使用技巧不全
- Java核心技术(多线程)五
- 生活随笔:贪玩
- 编程之美2.14扩展问题1 求子数组和的最大值(首尾可以相连)
- mina too many files
- 比较全面的函数注释规范
- dataGridView移除多行
- 设置Eclise中的快捷键
- Qt4.7 arm编译
- VERSIONINFO Resource VS_VERSION_INFO
- Javascript作用域原理
- Linux下的一些命令