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

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

题目:

leetcode:丑数总结(263,264,1201)_第1张图片

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

代码:

leetcode:丑数总结(263,264,1201)_第2张图片

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

题目:

leetcode:丑数总结(263,264,1201)_第3张图片

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

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

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

代码:
leetcode:丑数总结(263,264,1201)_第4张图片

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/

题目:

leetcode:丑数总结(263,264,1201)_第5张图片

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

代码:

leetcode:丑数总结(263,264,1201)_第6张图片

 

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

 

 

 

 

 

 

 

你可能感兴趣的:(leetcode:丑数总结(263,264,1201))