摘要: 1. 简述 给定一个源区间[x,y] (y>=x)和N个无序目标区间[x1,y1][x2,y2][x3,y3]...[xn][yn],判断[x,y]是否在目标区间内。2. 思路 这个比较简单,合并目标区间,判断源区间是否在目标区间内即可。具体过程如下:第一步,先把目标区间排序。 第二步,从第一个区间开始,遍历首先找到一个[xi,yi],使得xi<=x,如果找不到,说明不在目标区间内,如果找到了并且yi>=y,那么结束工作,源区间在目标区间内,如果找到了,但是yi<y,那么还需要继续遍历,进入第三步。 第三步,继续遍历[xi,yi],如果xi>y(i-1),那么区间 阅读全文
posted @ 2011-10-10 13:22 xiaodongrush 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 1. 简述 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组的和最接近?例如有如下数组,1,5,7,8,9,6,3,11,20,17。应该分割为1,3,11,8,20和5,7,9,6,17。2. 思路 方法一,暴力搜索,遍历每种分组方法,一共C(2N, N)种组合,复杂度是(2N!/N!),复杂度过高。 方法二,动态规划,原题是要求求两个数组的和最近接,这等价于要求其中较小的和最接近与2n个正整数的和(设为SUM)的一半。因此,弱化题目,求这个最近接一半的且小于等于SUM/2数值,定义Heap[i],i<=N表示任意i个数能够构成 阅读全文
posted @ 2011-10-10 13:08 xiaodongrush 阅读(2101) 评论(0) 推荐(0) 编辑