![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
GoodBoyDing
这个作者很懒,什么都没留下…
展开
-
阶乘尾部的0
每天一道算法题问题描述:设计一个算法,计算出 n 阶乘中尾部 0 的个数。(不考虑 n = 0)挑战:O(logN)的时间复杂度解决首先我们不考虑时间复杂的解决思路是先求出 n 的阶乘,然后再计算 n 阶乘尾部 0 的个数。代码如下:public long trailingZeros(long n) { long arg = 1; long...原创 2020-04-21 00:42:27 · 249 阅读 · 0 评论 -
统计数字
每天一道算法题问题描述计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。示例输入: k = 1,n = 12输出:5解释:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出现了 5 次 (1, 10, 11, 12)。解决首先先解决这个问题的子问题,即计算一个个位数 k 在一...原创 2020-04-21 00:40:36 · 225 阅读 · 0 评论 -
第n小的丑数
每天一道算法题问题求第 n 小的丑数描述设计一个算法,找出只含素因子2,3,5 的第 n 小的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...挑战要求时间复杂度为 O(nlogn) 或者 O(n)。解决获得一个丑数很容易,因为丑数可以通过 2x * 3y * 5z 获得,同时任意丑数乘以 2、3、5 也是一个丑数。但是如...原创 2020-04-21 00:39:02 · 165 阅读 · 0 评论 -
第 K 大的数
第 K 大的元素问题问题描述:在数组中找到第 k 大的元素挑战:要求时间复杂度为 O(n),空间复杂度为 O(1)解决这个问题其实与数组排序类似,可以使用 k 趟冒泡排序或选择排序,选出数组中前 k 大的元素并排序,就可以得到数组中第 k 大的数。每一趟选择排序或冒泡排序,都会选出数组中最大的元素,所以第 k 趟就会选择出第 k 大的元素代码如下(使用选择排序)...原创 2020-04-21 00:37:05 · 327 阅读 · 0 评论 -
位运算实现a+b
每天一道算法题问题描述:给出两个整数 a 和 b,求它们的和。说明:a 和 b 都是 32 位整数可以使用位运算符不使用 + 等算数运算符解题思路首先我先看 a = 4,b = 5 相加的结果 0 1 0 0+ 0 1 0 1= 1 0 0 1‘+’ 运算规则不用多说,就是对应位相加,逢 2 进 1;然后我们再看 a ^...原创 2020-04-21 00:23:32 · 690 阅读 · 0 评论