码迷,mamicode.com
首页 >  
搜索关键字:子数组    ( 1941个结果
[编程之美] 2.14 求数组的子数组之和的最大值
给定一个包含N个整数的数组,求数组的子数组之和的最大值。...
分类:其他好文   时间:2014-06-10 11:18:42    阅读次数:154
第四章 分治策略 4.1 最大子数组问题 (减治法,别人的,拿来看看)
/** * 获得连续子数组的最大和 * * @author dfeng * */ private static long getMax(long a, long b) { return a > b ? a : b; } /** * 获得连续子数组的最大和 * * @param array ...
分类:其他好文   时间:2014-06-07 21:21:30    阅读次数:241
第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
/** * 最大子数组的暴力求解算法,复杂度为o(n2) * @param n * @return */ static MaxSubarray findMaxSubarraySlower(int[] n) { long tempSum = 0; int left = 0; int right = 0...
分类:其他好文   时间:2014-06-07 21:07:50    阅读次数:250
第四章 分治策略 4.1 最大子数组问题(自己想的,不知道是不是减治法)
package chap04_Divide_And_Conquer;import static org.junit.Assert.*;import java.util.Arrays;import org.junit.Test;/** * 算反导论第四章 4.1 最大子数组 * * @author ....
分类:其他好文   时间:2014-06-07 20:21:38    阅读次数:212
线段树(segment tree)
1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a...
分类:其他好文   时间:2014-06-07 16:55:29    阅读次数:307
【剑指offer】连续子数组的最大和
题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住? 输入: 输入有多组数据,每组测试数据包括两行。 第一行为一个整数n(0<=n<=100000),当n=0时,输入...
分类:其他好文   时间:2014-06-05 01:47:51    阅读次数:227
排序算法之快速排序
快速排序的平均性能相当好,故快速排序通常是用于排序的最佳的使用选择。 该算法的关键是对数组进行初始划分。进行完数组划分之后,需要递归地将划分出来的两子数组分别进行快速排序。...
分类:其他好文   时间:2014-06-05 01:11:08    阅读次数:258
求一堆数组中最大的子数组
成员:周其范20112794 胡宝月20112827上课的时候老师布置了这个题目,初一看这个题目,我们讨论的时候就是在想,应该从第一个数开始,一个一个加,一直加到最后一个数,然后从第二个数开始,一个一个加,加到最后一个,以此类推,在比较的过程中,我们需要比较每加一次的数大小,把每比一次的数赋给sum...
分类:其他好文   时间:2014-06-03 09:53:07    阅读次数:243
【剑指offer】数组中的逆序对
思路:最简单的方法是顺序数组,将每个数字与后面的比较,统计逆序对的个数,这种方法的时间复杂度为O(n*n),这种方法写出的代码在九度OJ上测试,会超时。剑指offer给出了归并排序的思路,这个有点难想到啊,也可能是我太弱了,根本没往这方面想!理解了思路,就不难了,将数组划分成两个子数组,再将子数组分别划分成两个子数组,统计每个子数组内的逆序对个数,并将其归并排序,再统计两个子数组之间的逆序对个数,并进行归并排序。这就是归并排序的变种,在归并排序代码的基础上稍作改进即可。 合理还要注意一点:全局变量c...
分类:其他好文   时间:2014-06-03 03:14:36    阅读次数:239
【剑指offer】数组中只出现一次的数字(1)
思路:上篇博文中已经了解到异或去重的原理,而且知道如果只有一个只出现一次的数字的求法,但这里是有两个只出现一次的数字,我们便要想办法把他分为两个子数组,每个子数组中包含一个只出现一次的数字,其他的数字都出现了两次。剑指offer上的思路很巧妙,依然从头到尾异或所有的数字,这样得到的结果实际上就是两个只出现了一次的数字异或的结果,我们在异或后的结果中找出其二进制中最右边为1的位,该位既然为1,说明异或的两个数字对应的该位肯定不同,必定一个为1,一个为0,因此我们可以考虑根据此位是否为1来划分这两个子数组,这样...
分类:其他好文   时间:2014-06-01 09:58:08    阅读次数:245
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!