输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值,要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此输出为该子数组的和18。...
分类:
编程语言 时间:
2014-12-08 12:31:30
阅读次数:
197
题目:输入一个整型数组,数组里有正数和负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。实现:boolg_InvalidInput=false;
intFindGreatestSumOfSubArray(int*pData,intnLength)
{
if((pData==NULL)||(nLength<=0))
{
..
分类:
编程语言 时间:
2014-12-04 18:18:50
阅读次数:
229
首尾相连数组的最大子数组和时间限制:1000ms | 内存限制:65535KB难度:4描述给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0...
分类:
其他好文 时间:
2014-11-15 20:09:32
阅读次数:
215
hoj2558,给定一个矩阵,返回最大的子矩阵的和。
思路(动态规划):
1.读入矩阵的同时计算部分和矩阵
2.枚举矩阵的行上下边界,固定了行上下边界后,
根据部分和矩阵在O(1)时间内得到同一列元素的和,转化为1维数组的情况
3.按照一维数组的情况,求最大子数组和的思路是:
可以从后往前计算,每次先算以当前元素A[i]为开头的最大和start,
再将start与当前A[i+1:n]...
分类:
其他好文 时间:
2014-11-13 22:36:50
阅读次数:
305
题目链接:hdu 5071 Chat
题目大意:模拟题。。。注意最后说bye的时候只要和讲过话的妹子说再见。
解题思路:用一个map记录每个等级的妹子讲过多少话以及是否有这个等级的妹子。数组A和N记录等级的顺序,增加
删除等操作完全可以同过数组上的模拟,时间足够。T和flag标记是否有置顶窗口。
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-10-23 20:52:46
阅读次数:
288
该题是poj的1050号题:http://poj.org/problem?id=1050同时在《编程之美》2.15小节思想是:1、把二维降到一维,把同一列的若干个数的和算出来,然后从行的角度,变成求一维数组的子数组和的最大值,一共要计算(1+n)*n/2次一维数组的和最大值2、在求同一列的若干数的和的时候,..
分类:
其他好文 时间:
2014-10-06 23:13:11
阅读次数:
269
使用动态规划求最大子数字和:s[i]表示data[i~n-1]以元素i开始的最大子数组和,a[i]表示data[i~n-1]中的最大子数组和 ;s[i]=max(s[i+1]+data[i], data[i]);a[i]=max(a[i+1], s[i]); 由于数组s,a递推的时候,都只用到数组的...
分类:
其他好文 时间:
2014-09-03 00:05:55
阅读次数:
261
解法一:直接求解下标i~j的子数组和最大值;复杂度O(N^2);代码如下: 1 #include 2 using namespace std; 3 const int INF=1000000; 4 5 int maxSum(int arr[],int n); 6 7 int main() 8 {.....
分类:
其他好文 时间:
2014-08-18 21:52:52
阅读次数:
314
题目描述:给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所...
分类:
其他好文 时间:
2014-08-08 12:21:18
阅读次数:
278