返回连续子序列,使得和最大(变形)
来源:互联网 发布:最新微信家校通源码 编辑:程序博客网 时间:2024/06/06 01:04
编程珠玑上一道老题:一个数组,找出连续子序列使得和最大。我们可以使用线性扫描的算法来解决,这道题变形之后成为:找出连续子序列,使得和最接近某个数。原来的时间复杂度为线性的方法行不通了,我们可以累加数组,然后排序,求的相邻的差,最接近k的数就是所求。代码如下:
- int approximate(int * pArry, int len)
- {
- int * cum = 0;
- int * realarry = new int[len + 1];
- realarry[0] = 0;
- cum = realarry + 1; //cum[-1] = 0
- //累计pArry[0....i]的和存放于cum[i]中
- for (int i = 0; i < len; i++)
- {
- cum[i] = cum[i - 1] + pArry[i];
- }
- sort(cum, cum + len); //对cum排序
- int iMin = cum[1] - cum[0];
- for (int k = 1; k < len; k++)
- {
- iMin = min(iMin, cum[k] - cum[k - 1]); //返回相邻两个元素差值最小的
- }
- return iMin;
- }
0 0
- 返回连续子序列,使得和最大(变形)
- 最大和连续子序列的变形
- HDU 1069 最大子序列和(不连续)变形
- Maximum Sum 最大子矩阵和+dp+(最大连续子序列的变形)
- HDU 5586 最大连续子序列和变形
- leetcode 最大子序列和(连续)
- 最大连续子序列和(小结)
- 最大连续子序列和(java)
- 连续子序列最大和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- 最大连续子序列和
- codeforces好题记录——3D
- Makefile 中:= ?= += =的区别
- codeforces好题记录——4D
- 左旋字符串——编程珠玑和STL所想到的
- 位运算的巧妙运用
- 返回连续子序列,使得和最大(变形)
- Android中.9.png图片的使用过程和原理
- 理解同步与异步的概念
- Linux rpm 命令参数使用详解
- 【备忘录】MySQL中插入中文显示“???”的解决办法
- android画经过多点的曲线
- nginx写临时文件过程分析
- hdu1677 Nested Dolls(贪心)
- andriod Handler机制原理