一: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/
题目:
思路:那个链接里可以看到,另外,最大公约数,与,最小公倍数的求法,也值得研究下
代码:
收获:学会了,最大公约数的递归写法,以及求最小公倍数,丑数的概念。