笔试算法学习
文章平均质量分 52
TalkU浩克
Loyal to the soul
展开
-
笔试算法学习--传球游戏(dp递推)
先看题目:上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出一个有趣的问题:有多少种不原创 2016-09-09 10:53:47 · 807 阅读 · 0 评论 -
笔试算法学习--dp规划(最长非递增子序列)
太懒,直接来个链接吧:dp规划学习个人心得:1.自顶向下,从第一个数统计之后的最大子序列; 2.自顶向下,问题重叠严重,冗余太多;采用自底向上;从最后一个数据开始处理,算法更高效;原创 2016-09-09 21:44:39 · 882 阅读 · 0 评论 -
算法---求二进制中1的个数
学习的地址:原文地址问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。1.普通法 我总是习惯叫普通法,因为我实在找不到一个合适的名字来描述它,其实就是最简单的方法,有点程序基础的人都能想得到,那就是移位+计数,很简单,不多说了,直接上代码,这种方法的运算次数与输转载 2016-09-10 10:46:30 · 3992 阅读 · 0 评论 -
kmp算法
转载:点击打开链接1.kmp算法的原理: 本部分内容转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道转载 2016-09-22 20:42:54 · 441 阅读 · 0 评论 -
笔试算法学习----并查集(转)
实例首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。如果是1个连通分支,说明整幅图上的点都连起来了,不用再修路了;如果是2个连通分支,则只要转载 2016-09-07 11:25:20 · 576 阅读 · 0 评论 -
笔试算法学习---超级楼梯(递推)
先看一个题目:有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法。输入输入数据首先包含一个整数n(1样例输入223输出对于每个测试实例,请输出不同走法的数量。原创 2016-09-08 20:08:03 · 2153 阅读 · 2 评论 -
笔试算法学习--最大连续子序列和
例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。1)动态规划,dp[i]中保存前i-1个数的最大和;#include#includeusing namespace std;int main(){ int n; vector seq; vectordp;seq.resize(n原创 2016-09-24 20:38:47 · 365 阅读 · 0 评论 -
笔试算法学习--链表相关
给定一个单链表,只给出头指针head:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少? 解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。2、对于问题2,记录下问题1的碰撞点p,slo转载 2016-09-24 21:12:04 · 281 阅读 · 0 评论 -
笔试算法学习--买票找零问题(卡特兰数)
问题:2n个人排队买票,其中n个人持50元,n个人持100元。每张票50元,且一人只买一张票。初始时售票处没有零钱找零。请问这2n个人一共有多少种排队顺序,不至于使售票处找不开钱?题目另一种形式:有n对左括号和右括号,现在问到底有多少中括号合法匹配的组合?解:原理实际上,这个就是卡特兰数的一个应用:其前几项为 : 1, 1, 2, 5, 14,转载 2016-10-15 12:51:20 · 3966 阅读 · 1 评论
分享