码迷,mamicode.com
首页 >  
搜索关键字:子数组    ( 1941个结果
连续子数组的最大和问题及其变化
输入一个整形数组,数组中有正数也有负数。数组中的一个或连续的多个正数组成一个子数组。球所有子数组的和的最大值。 如输入{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},输出应该是18 这是在《剑指offer》上看到的题目,这道题可以在O(n)的时间复杂度内求解,而且这个问题可以是很多更加复杂问题的子问题。所以记录加深下印象。 分析: 以上面列出的{1,-...
分类:编程语言   时间:2015-05-01 14:49:28    阅读次数:190
Zoj 3842 Beauty of Array
Problem地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5520根据题目的要求,需要算出所有连续子数组的the beauty的总和。那么要求这个这个总和,刚开始最容易想到的就是这样:for( int i=1; i#in...
分类:其他好文   时间:2015-04-30 19:46:56    阅读次数:185
返回一个二维整数数组中最大联通子数组的和
设计思路: 首先将二维数组中正整数的值找出来,之后找到每个正整数上下左右加起来为正的负数。之后判断是否联通,将小的负数排除掉,最后留下的是二维整数数组中最大联通子数组。程序代码: 1 #include 2 #include 3 #define M 3 4 #define N 5 5 u...
分类:移动开发   时间:2015-04-28 22:26:20    阅读次数:232
编程之美2.18—数组分割
题目: 有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。 基本思想: 假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。 显然: S(k, 1) = {A[i] | 1 S(k, k) = {A[1]+A[2]+…+A[k]} ...
分类:编程语言   时间:2015-04-28 14:16:04    阅读次数:135
二维连通数和最大值
题目:返回一个二维整数数组中最大联通子数组的和思路:把二维数组的每一行看成一维数组,在一位数组中求联通的的最大子数组,都求出后判断这几组的小连通数组是否相连,把相连的的加在一起。最后在判断在上一个一维数组最大联通范围内是否有正数有则加上。代码:#includeusing namespace std;...
分类:其他好文   时间:2015-04-27 19:44:24    阅读次数:88
求二维整数数组中最大联通子数组的和
1 问题:返回一个二维整数数组中最大联通子数组的和2思路:对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行。第二种是不相...
分类:移动开发   时间:2015-04-27 12:46:33    阅读次数:206
连续子数组的和的最大值、最小值以及和的绝对值的最大值、最小值
#include #include #include using namespace std; //求子数组的最小和 //利用的是dp的思想,依次遍历数组中的每个元素,把他们相加,如果加起来大于0,则 //把当前元素之和清为0,否则则和最小和比较,更新最小和,最后得到必是子数组的最小和 //时间复杂度:o(n) 空间复杂度:o(1) int minSum(vector &num) { i...
分类:编程语言   时间:2015-04-27 10:03:18    阅读次数:169
环状二维数组(改进版)
上一篇环状二维数组还存在问题,当时并未判断产生的子矩阵是否超过矩阵的范围,所以结果会出现问题。改进版的程序中对此进行了判断。此问题分为两种,一种是最大子数组成环,一种是最大子数组未成环。未成环的部分之前已实现,下面是成环部分。开始的思路是:将矩阵进行扩大,类似于一维数组,但是扩大后就会出现子矩阵的范...
分类:编程语言   时间:2015-04-26 21:01:58    阅读次数:176
[剑指Offer]40.数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路我们直到异或的性质:任何一个数字异或他自己都等于0. 所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了。这道题中有两个数字只出现一次。这样的话我们得到的结果就是这两个数字的异或结果。因此我们想办法把原数组分成两个子数组,使得每个子...
分类:编程语言   时间:2015-04-26 19:47:36    阅读次数:120
二维数组首尾相连最大子数组
电脑坏了,忘了发了。。。。题目:返回一个二维整数数组中最大子数组的和。要求: 输入一个二维整形数组,数组里有正数也有负数。 二维数组首尾相接,象个一条首尾相接带子一样。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。思路:将求二维数组最...
分类:编程语言   时间:2015-04-26 12:07:44    阅读次数:166
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!