题目描述:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。思路:我们可以使用分治法或者减治法来处理这个问题。分治法 目标:把1个大问题分成2个小问题,2个小问题还可以再分,直到问题规模小的可....
分类:
编程语言 时间:
2015-02-03 19:07:06
阅读次数:
210
java实现原数组根据下标分隔成两个子数组并且在原数组中交换两个子数组的位置,两种交换算法:前插法,逆置法
分类:
编程语言 时间:
2015-02-02 22:43:49
阅读次数:
200
求子数组的最大和(数组)
题目:
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为
O(n)。
例如输入的数组为
1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为
3, 10, -4, 7, 2,因此输出为该子数组的和
18。
解题思...
分类:
编程语言 时间:
2015-02-01 12:09:43
阅读次数:
1190
快速排序---实际排序应用中最好的选择期望时间复杂度为θ(nlgn)最坏情况复杂度为θ(n2)----由于隐含常数因子小及原址排序,故广泛用7.1 快速排序描述采用分治思想分解:将数组A[p..r]划分为两个子数组A[p..q-1]和A[q+1,r],划分的依据是使A[p..q-1]的值全都小于或等...
分类:
编程语言 时间:
2015-01-28 17:39:36
阅读次数:
182
C++11中增减了array,代替原来C语言中的数组。
同时,也避免了动态数组new和delete的使用,内存自动管理。
而且,执行效率比vector高。
一 定义
在array头文件中定义:
template struct array;
如果我们自己来写一个array模板类的话,大概应该想这个样子:...
分类:
编程语言 时间:
2015-01-27 11:17:50
阅读次数:
156
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,故原出处已不好查到,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明。谢谢。题目:输入一个整形数...
分类:
编程语言 时间:
2015-01-25 19:33:41
阅读次数:
177
题目:给定一个二维数组,求这个二维数组的子数组之和的最大值。
分析:将二维降低到一维的情况。
代码:
#include
const int MAXN = 10000;
const int INF = 100000000;
using namespace std;
int B[MAXN][MAXN], PS[MAXN][MAXN];
int n, m;
int B...
分类:
编程语言 时间:
2015-01-25 12:35:46
阅读次数:
172
题目:给定一个一维数组,求这个数组的子数组之和的最大值。
最佳方法:动态规划!
一、
可以将一个大问题(N个元素数组)转化为一个较小的问题(N-1个元素数组)。。
假设已经知道(A[1],...A[n-1])中最大的子数组的和为:All[1]
并且已经知道(A[1],...A[n-1])中包括A[1]的子数组的最大和为start[1]
所以最终的解All[0] ...
分类:
编程语言 时间:
2015-01-25 12:32:56
阅读次数:
166
表示很久没有接触算法了,好多东西真心要一点点拾掇起来,为了找份好工作,我也是蛮拼的了。 好吧,下来说说分治算法,因为在leetcode上刚好碰到这么个问题,想到要用分治做,但是一时又不清楚具体步骤。于是抱起《算法导论》啃起来。刚好上面的例子也是这个算法,就研读了一下。 假定,我们要寻找子数组...
分类:
编程语言 时间:
2015-01-22 14:55:04
阅读次数:
164