
LintCode
PengStrongLee
这个作者很懒,什么都没留下…
展开
-
1、A+B问题
这一题是LintCode上的第一题,有点意思。重要的不是代码,而是思考的过程。我一开始也没有思路,后来参考了一下别人的思路,见笑了~首先要想到用位运算首先肯定要想到用位运算来操作,即用二进制来处理,好,既然想到这里,当然要举个例子来想想,最简单的1+21的二进制 ····00012的二进制 ····00103的二进制 ····0011那a+b不就等于原创 2018-01-12 13:55:28 · 670 阅读 · 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 评论