数组/链表
文章平均质量分 55
小弟季义钦
好东西要大家分享!
展开
-
两个数组分别取出一个来相加,找出和最小的k个
【特别注意】:这个方法有问题,正确的方法是用堆实现,最近比较忙,没时间写代码,过一段时间补上。 /** * 两个数组a1和a2,大小都为k。 * 有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列, * 对于1<=i,j<=k,求k个最小的(ai+bj),要求算法尽量高效。 */ #include #define M 6 #原创 2012-10-07 22:52:29 · 3709 阅读 · 0 评论 -
二分查找
#include using namespace std; /** * 二分查找之一: 可以找到连续重复出现的第一个出现的元素 */ int binarySearch(int a[], int n, int x){ int l = 0, h = n-1; int m; while(l <= h){ m = (l+h)/2; if(x <= a[m]) h原创 2012-10-22 20:47:39 · 816 阅读 · 0 评论 -
线性时间求出能够覆盖的最多区间数目
/** * 区间覆盖问题: 要求给定一组已经排好序数字,每个数字代表一个以其为起点的单位区间。 * 然后给定一个区间长度L, 要求能够覆盖到最多的单位区间,并且整个长度不超过L。 * 同时给出覆盖了哪些区间。比如L=5,{1,2,7,10,11,12,14,20,22,23}, * 能够覆盖最多10,11,12,14四个区间,覆盖长度长度为5 <= L。 */ #include原创 2012-10-07 20:51:10 · 1270 阅读 · 0 评论 -
找出只出现一次的两个数
#include using namespace std; /** * 题目:有N+2个数,N个数出现了偶数次,2个数出现了奇数次(这两个数不相等), * 问用O(1)的空间复杂度,找出这两个数,不需要知道具体位置,只需要知道这两个值。 * */ /** * 假设不相同的两个数字是x和y。他们的异或结果一定不是0,假设为xor。 * xor的最低位1就是他们不相同的其中原创 2012-11-16 17:08:16 · 929 阅读 · 0 评论