数据结构与算法
iteye_8610
这个作者很懒,什么都没留下…
展开
-
数组分割问题
题目:有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组之和最接近? 看了编程之美的算法,一直在想算法只求出了最接近的那个和值,没有求出分割的具体分法,后来想想,这个具体的分割的索引值,可以在求和值的时候一起保存下来。代码有点乱,凑活看吧。 import java.util.*; class Node{ int value; ...原创 2012-04-06 14:48:38 · 118 阅读 · 0 评论 -
数组分割问题解法二
数组分割问题解法上总体来说就是用动态规划的方法求出2n个数中,取出n个数相加所能得到的所有的值,然后从中找到最接近sum/2的那个值。解法一中,每一步都需要更新每一个Heap中的每一个元素,而Heap中的元素个数随着K的增大而增大;解法二不再遍历Heap中的元素,而是遍历1---sum/2之间的值。解法二用了一个二维数组isOK来保存结果,isOK[i][j]表示能否找到i个数,使得他们的和等于j...2012-04-06 20:17:33 · 131 阅读 · 0 评论 -
区间覆盖问题
给定一个源区间[x,y](y>=x)和N个无序的目标区间[x1,y1][x2,y2]......[xn,yn],判断区间[x,y]在不在目标区间内。 /** *区间覆盖问题 *输入:n个区间,有可能重合,还有一个区间,判断这个区间是不是与这n个区间完全重合 *输出:true or false *步骤:先将n个区间按start进行排序O(nlogn),然后根据这些区间的...原创 2012-04-06 21:11:56 · 103 阅读 · 0 评论