leetcode:丑数总结(263,264,1201)

一:263:https://leetcode-cn.com/problems/ugly-number/

题目:

思路:首先要理解题意,并不是我刚开始的理解(以为必须所有的因子都只能是2,3,5,这样8就不可以,显然与题目给的案例矛盾),从而说明题意是,可以存在因子组合,只有2,3,5就是丑数,eg:8,8=2*2*2,这样就存在一个组合的因子只包含,2,3,5.->>因此就可以考虑,对一个数进行判断,如果能被2,3,5中的数整除,那么就对它整除,直到发现它对2,3,5都不能整除,则说明不是丑数,如果可以一直除到那个数变成1,则说明可以整除。

代码:

2:264:https://leetcode-cn.com/problems/ugly-number-ii/

题目:

思路:我们大概知道,可以把丑数从小到大依此乘以2,3,5,这样得到的数肯定是丑数,但是会有个问题,你怎么从小到大的排列,不,应该是怎么将你乘2,3,5后得到的数按顺序排列起来?另外你怎么知道第n个数在什么时候得到?

           第一个问题,用set解决,这样每次insert的时候,就会有序了,因此每次取的数也会按着顺序来了

           第二个问题,用个计数来弄,因为每次取得数,是按着丑数顺序来的,因此就可以控制好了。

代码:

3:1201:https://leetcode-cn.com/problems/ugly-number-iii/

题目:有点难,请看链接,别人讲解的分析:

https://leetcode-cn.com/problems/ugly-number-iii/solution/er-fen-fa-si-lu-pou-xi-by-alfeim/

题目:

思路:那个链接里可以看到,另外,最大公约数,与,最小公倍数的求法,也值得研究下

代码:

 

收获:学会了,最大公约数的递归写法,以及求最小公倍数,丑数的概念。

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值