算法题
深入算法题
TimeBAT
java工程师
展开
-
快速理解LintCode算法丑数 II问题
刨根究底才能记忆深刻。算法题:如果一个数只有质数因子,, ,那么这个数是一个丑数。前10个丑数分别为 设计一个算法,找出第N个丑数。我们可以认为 也是一个丑数。给出的标准答案之一为:首先理解丑数除了1之外,底子都是2、3、5,然后取他们的倍数。所以假定要创建一个大小为N的丑数数组,那数组最后一个数就是第N个丑数。直接根据代码举例子:i = 1 时,res[1] = 2、3、5 ----> 取最小值2p2 = 1i = 2 时,res[2] = 4、3、5 ---->原创 2022-06-11 15:00:17 · 170 阅读 · 1 评论 -
快速理解LintCode算法尾部的零问题及时间复杂度概念
刨根究底才能记忆深刻。LintCode算法题:给定一个整数 ,计算出中尾部零的个数。你算法的时间复杂度应为 O(logn)。给出的标准答案之一为:简单的说就是尾部是0,那就是得到10,10的因子是2跟5,很明显因子2的个数肯定大于5。因为是求尾部的0所以就找因子5的个数就行。直接用n 去除5求商。顺带了解一下时间和空间复杂度的概念。时间复杂度:算法耗费的时间。空间复杂度:算法耗费的内存空间。1、O(n) ,线性阶,数据量增加n倍,耗时增加n倍。比如for循环遍历。2、O(n^2) , 平方阶,数据量增原创 2022-06-11 14:23:11 · 142 阅读 · 0 评论 -
快速理解LintCode算法统计数字问题
刨根究底才能记忆深刻。算法题:给定一个数字 ,计算 在 0 到 n 中出现的次数, 可能是 0 到 9 的一个值。给出的标准答案之一为:比如0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15判定其中2出现的次数。代码就是首先判断K为0的情况,int sum= k==0? 1:0;当K为0是,次数sum 直接为1,因为从0开始的嘛。if(tmp%10==k)sum++; 就是取余,比如tem为22,余数为2,次数sum +1,tmp/=10,取商,tmp就为2,再进来余数是2,原创 2022-06-11 14:41:50 · 103 阅读 · 0 评论 -
快速理解LintCode算法A+B问题解析原理
LintCode刷题,但是需要深入了解解题思路的原理,明白实现逻辑,自己理解并整理的解析,给自己做个笔记也希望能给大家一点帮助。算法题:给出两个整数 aa 和 bb , 求他们的和并以整数(int)的形式返回。...............原创 2022-06-08 17:04:58 · 524 阅读 · 0 评论