参与答题互动有惊喜
算法能力的考察,向来是顶级科研机构和IT公司面试时最具备区分度的成分,算法功夫扎实,提升面试效率。
这种想法其实也不无道理,从小接受系统化训练,参加过信息学竞赛或ACM,肯定会对算法问题反应更快一些。可是这样的人毕竟是极少数,而且即使是他们,也无一不是长期大量地训练才会不断进步。这至少说明,算法并非天外之学,而是一种能够通过训练掌握的技能。换言之,对于5%的真正难题,也许真的是只为5%的天才而存在的。但是其余的95%,却是95%像你我一样的普通人自学可以达成的目标。
提升算法能力,小编带来了一份高效入门书单。
算法入门
01 趣学算法
编辑推荐:
本书从算法之美娓娓道来,没有高深的原理,也没有枯燥的公式,通过趣味故事引出算法问题,包含50多个实例及完美图解,结合学生提问,分析算法本质,并给出代码实现的详细过程和运行结果。
本书可作为程序员的学习用书,也适合从未有过编程经验但又对算法有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书和培训学校的教材。
02 算法详解(卷1)——算法基础
编辑推荐:
这本书在美亚评分4.7,在作者在线算法课程的基础之上编写的,是四卷本系列的第1卷。这个在线课程2012年起就定期更新,它建立在作者在斯坦福大学教授多年的本科课程的基础之上。也许你有所耳闻,这本书就是《算法详解(卷1)——算法基础》。如果你更喜欢听和看,可以在YouTobe上搜索这本书的主题课程,免费观看。
《算法详解(卷1)——算法基础》作者蒂姆·拉夫加登(Tim Roughgarden)是斯坦福大学计算机科学系的教授,也是该校管理科学和工程系的客座教授,他从2004年开始教授和研究算法。本书是他的《算法详解》四部曲的第一卷。
这本书详细讲解算法基础,展现算法本质 ,是一本囊括基本算法知识的详解指南。集斯坦福大学教授多年教学经验,深入浅出,通俗易懂。
03 Python算法详解
编辑推荐:
本书循序渐进、由浅入深地讲解Python算法的核心技术,并通过具体实例的实现过程演练各个知识点的具体使用流程。全书共13章,包括算法,数据结构,常用的算法思想、线性表、队列和栈,树,图,查找算法,内部排序算法,经典的数据结构问题,数学问题的解决,经典算法问题的解决,图像问题的解决,游戏和算法等内容。
展开全文本书不但适合研究和学习算法的初学者,也适合有一定算法基础的读者,还可以作为大中专院校相关专业师生的学习用书和培训学校的教材。
来看看今天的经典算法题:
来自:今日头条2017后端工程师实习生笔试题
来自:今日头条2017后端工程师实习生笔试题
题目:有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。
初始集合是空的,有两种操作,要么给集合添加一个长度为 L 的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形。
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n 表示操作的数量(1 ≤ n ≤ 50000) , 接下来有n行,每行第一个整数为操作类型 i (i ∈ {1,2}),第二个整数为一个长度 L(1 ≤ L ≤ 1,000,000,000)。如果 i=1 代表在集合内插入一个长度为 L 的木棒,如果 i=2 代表删去在集合内的一根长度为 L 的木棒。输入数据保证删除时集合中必定存在长度为 L 的木棒,且任意操作后集合都是非空的。
输出描述:
对于每一次操作结束有一次输出,如果集合内的木棒可以构成简单多边形,输出 "Yes" ,否则输出 "No"。
示例1
输入51 11 11 12 11 2输出NoNoYesNoNo
小贴士:返回上一级搜索“算法题”挑战