![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
说的是算法
unwrittenkeys
这个作者很懒,什么都没留下…
展开
-
突然就燃了
无语的题目:找出两个链表的第一个交点,自己说了m*n,以及借用空间的线性算法,最后逼着构造了一个环,求了环的交点,竟然生生地想不起来长度截取然后一起向下走的算法,囧啊...原创 2012-04-24 15:58:10 · 88 阅读 · 0 评论 -
日程安排问题
<算法基础>上的贪婪算法讲的真是好啊,分析的很精到,例子也很实际,遇到了一个新问题: 日程安排,n个日程,以及数组d,d[i]表示任务i的完成期限,数组g,g[i]表示i在d[i]前完成可以获得的收益,求最大收 益序列。 n^2的方法不说了,先快排g,降序,按照g顺序把遍历到的每个i插入数组j中,用并查集记录i的位置变化,最终时间复杂度O(nlogn)+O(n)<并查...原创 2012-03-27 22:57:20 · 144 阅读 · 0 评论 -
有序数据求交集
网上看到一道老题:两个有序数组a与b,求两者的交集。 有序这个条件,开始就往二分上撞,后来没有好的想法,bing一下(悲催的google老是断,摆渡很萌),大家的做法几乎都是O(n)+hash表。想了一下,对于范围或者集合的查询,即使输入是有序的,是否二分都是无效的? 求解。。。...原创 2012-03-28 11:22:28 · 77 阅读 · 0 评论 -
Dutch national flag problem
这个题目:separate negative and positive numbers while being stable,也就是给定一个长n数组,空间复杂度为O(1),时间为O(n), 重新排列,使得负数在前半部分,正数在后半部分,且不改变相对顺序;此题有许多变种,比如偶数奇数,在july的博客上多有讨论,自己一直对此有疑问,在stackoverflow上看到一个帖子: How to ...原创 2012-03-29 09:18:32 · 405 阅读 · 0 评论 -
区间调度
问题:有一组需求{1,...,n},每个需求i有一个开始结束时间s(i),f(i)对应,如果两个需求没有在时间上重叠,我们就说需求是相容的,求最大的相容子集,即最优子集。 明显的贪心算法啦: 按照f结束时间升序排序,O(nlogn), 依次处理每个需求,假如最优子集集合,顺序删除与之冲突的后续需求,O(n) ...原创 2012-04-04 13:31:33 · 62 阅读 · 0 评论 -
判断变位词
题目1:输入字符串s1,s2,判断是否为变位词。 解1:O(n^2)的遍历,不用额外空间。 解2:假设输入全为ASII字符,那么用256空间统计s1的字符出现,再到s2中匹配,如果最终256的数组全0,为变位 词。 解3:每个字符赋一个数字(质数?),s1所有数字乘起来,s2全乘起来的值-==s1的值,那么是变位词,空间为常量 时间O(n)。 解法三让我想起了一则趣事...原创 2012-04-05 14:24:46 · 150 阅读 · 0 评论 -
带权区间调度
问题:有一组需求{1,...,n},每个需求i有一个开始结束时间s(i),f(i)对应,同时每个需求有一个权值vi,如果两个需求没有在时间上重叠,我们就说需求是相容的,求一个相容子集,使得权值之和最大化。 需要动态规划了: 首先按照结束时间f排序,升序,O(nlogn) 。 则递归解为:opt(i) = max(opt(p(i))+vi,opt(i-1)),O(n) 。...原创 2012-04-05 16:08:21 · 541 阅读 · 0 评论 -
位操作一题
An array A[1... n] contains all the integers from 0 to n except for one number which is missing. In this problem, we cannot access an entire integer in A with a single operation. The elements of A are...原创 2012-04-05 21:53:30 · 231 阅读 · 0 评论 -
stein算法
欧几里德算法是计算两个数最大公约数的传统算法,他无论从理论还是从效率上都是很好的。但是他有一个致命的缺陷,这个缺陷只有在大素数时才会显现出来。考虑现在的硬件平台,一般整数最多也就是64位,对于这样的整数,计算两个数之间的模是很简单的。对于字长为32位的平台,计算两个不超过32位的整数的模,只需要一个指令周期,而计算64位以下的整数模,也不过几个周期而已。但是对于更大的素数,这样的计算过程...原创 2012-04-17 14:57:48 · 238 阅读 · 0 评论