
算法类
PengStrongLee
这个作者很懒,什么都没留下…
展开
-
算法之路(一)
写在前面: 好久没有复习算法这部分的知识了,以前也养成了不好的习惯,眼高手低,理解了算法的原理,不怎么去写伪代码,也很少真的去编译一下代码。以后要改正这个不好的习惯。从今天开始,把以前学习过的算法编译一遍,当做复习。注:我编译代码的环境有两种:1、ubuntu14.04, g++4.8.4 2、VS2015代码基本上都是用C++写的,顺便改进下C++的编程习惯。有诸多不足,原创 2017-03-11 15:30:43 · 550 阅读 · 0 评论 -
算法之路(三)——BFS
最近由于要忙论文开题的事,还有实习工作也比较忙,所以这个系列的博客好久没有更新了。BFS是一种基于“队列”这种数据结构的搜索方式,特点是由一个状态拓展出很多状态,然后再由此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都处理完毕。BFS对于解决最短或最少问题特别有效,而且寻找深度小,但缺点也很明显,内存消耗巨大(因为它需要大量的数组单元用来存储状态)。下面是实现BFS的原创 2017-03-25 16:58:45 · 915 阅读 · 0 评论 -
2、尾部的零
问题描述:设计一个算法,计算出n阶乘中尾部零的个数样例11! = 39916800,因此应该返回 2.这个问题相信很多老铁都已经遇到过了,很经典的一个题目,还是那句老话,重要的是考虑的过程,是如何想到以5的个数来统计0的个数呢?又是如何想到除以25、除以125... ...的呢?这些事重点。首先n!中,哪些数字相乘可能会出现0呢,最简单的也是最根本的2*5(即使原创 2018-01-14 15:30:38 · 323 阅读 · 0 评论 -
3、统计数字
问题描述:计算数字k在0到n中的出现的次数,k可能是0~9的一个值样例例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)显然用暴力搜索能可以解决的,一个数字一个数字地确定,这样时间复杂度就会很高了。《编程之美》中给我们提供了一种思路:假设有一个5位数转载 2018-01-16 13:24:56 · 433 阅读 · 0 评论 -
4、丑数 II
问题描述:设计一个算法,找出只含素因子2,3,5 的第 n 小的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...样例如果n = 9, 返回 10这一题思路很具有技巧性。其实说白了就是一个多链表Merge Sort的变形,看如下过程:Ugly Number: 1, 2, 3, 4,原创 2018-01-18 10:54:46 · 374 阅读 · 0 评论