算法
文章平均质量分 75
Viko_ReCode
这个作者很懒,什么都没留下…
展开
-
百度部分算法面试题
1. 给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)。 解:先选中前k个, 从第k+1个元素到最后一个元素为止, 以k/i (i=k+1, k+2,...,N) 的概率选中第i个元素,并且随机替换掉一个原先选中的元素, 这样遍历一次得到k个元素,转载 2013-06-11 20:19:43 · 531 阅读 · 0 评论 -
UVa 11283
#include #include const int N = 6; bool vis[N][N]; char s[N][N], word[18]; bool dfs(int x, int y, int k) { if(k>=strlen(word)) return true; if(s[x][y]!=word[k] || vis[x][y]) return false;原创 2013-07-27 21:26:47 · 483 阅读 · 0 评论 -
scauoj 1142 巡逻的士兵
复习计算智能时重温了这道题目,再次令我体会到递归+记忆化搜索的高效 Description 有N个士兵站成一队列, 现在需要选择几个士兵派去侦察。 为了选择合适的士兵, 多次进行如下操作: 如果队列超过三个士兵, 那么去除掉所有站立位置为奇数的士兵, 或者是去除掉所有站立位置为偶数的士兵。直到不超过三个战士,他们将被送去侦察。现要求统计按这样的方法,总共可能有多少种不同的正好三原创 2013-06-22 15:49:43 · 804 阅读 · 0 评论 -
算法复杂度渐近符号总结
本文根据算法导论第三章总结,但其中加入了我对本章的一些补充,并且配合算法导论习题进行讲解。 相信本文会让你对渐近记号有更深入地理解。 一、定义介绍 对于某个比较简单的算法,我们有时候确实能够精确地分析出算法的复杂度,比如算法复杂度为5n^2+10n+6,但是事实上并不需要这样,因为当n足够大时,可以忽略掉低阶项和最高次项的系数,因此就引出了“渐近复杂度”,并且用“渐近记号转载 2014-03-10 00:01:25 · 1240 阅读 · 0 评论