![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lintcode
一条鱼鱼鱼
这个作者很懒,什么都没留下…
展开
-
4. 丑数 II
设计一个算法,找出只含素因子2,3,5 的第 n 小的数。 符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12… 样例 如果n = 9, 返回 10 挑战 要求时间复杂度为O(nlogn)或者O(n) 注意事项 我们可以认为1也是一个丑数 用优先队列实现,C++ STL的优先队列即一个堆 priority_queue的用法 头文件是#include 关于prio...原创 2019-01-17 19:29:33 · 242 阅读 · 0 评论 -
6. 合并排序数组 II
合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。 样例 样例 1: 输入: A=[1], B=[1] 输出:[1,1] 样例解释: 返回合并后的数组。 样例 2: 输入: A=[1,2,3,4], B=[2,4,5,6] 输出: [1,2,2,3,4,4,5,6] 样例解释: 返回合并后的数组。 心态爆炸,暂时想不到优化的方法,就这样把,最普通的O(n+m)的方法,两个指针...原创 2019-01-23 21:01:31 · 206 阅读 · 0 评论 -
2. 尾部的零
设计一个算法,计算出n阶乘中尾部零的个数 样例 样例 1: 输入: 11 输出: 2 样例解释: 11! = 39916800, 结尾的0有2个。 样例 2: 输入: 5 输出: 1 样例解释: 5! = 120, 结尾的0有1个。 挑战 O(logN)的时间复杂度 这道题的解法在于分解因子,要在阶乘的最后放上0,则有最小因子2*5=10,又显而易见的,因子2的数量必定大于因子5的数量...原创 2019-01-14 16:59:31 · 116 阅读 · 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) 这道题主要用一般方法,当然暴力是可以的,但是时间复杂度太高 首先来看一个例子:n=2169,k=1,我们从低位到高位来看: 首先是个位9: 9前面有216个10,故有21...原创 2019-01-16 16:37:06 · 682 阅读 · 0 评论 -
5. 第k大元素
在数组中找到第k大的元素 样例 给出数组 [9,3,2,4,8],第三大的元素是 4 给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推 挑战 要求时间复杂度为O(n),空间复杂度为O(1) 注意事项 你可以交换数组中的元素的位置 这道题我用的算法书上的方法,原理跟快排的原理一致,分成3步 确定一个基准元素 以这个基准元素为分界,比他大的元素放...原创 2019-01-22 17:26:34 · 156 阅读 · 0 评论