100道算法系列---(1)寻找丑数 ---王布斯

2016-11-01  本文已影响112人  Goplayer王布斯

算法是本人的薄弱项,今天开始,尽量抽出时间去学一些算法,然后进行归纳总结,将学习的过程记录于简书,希望对自己是一种提高,如果能帮助到别人就更好了。

---学习的过程都是根据网上一些技术大牛的题和思路编写,都是Java版本比较多,个人用OC编写,加上一些个人的总结,菜鸟一枚,不喜勿喷。

算法01】寻找丑数

题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。

个人理解:此类题第一种思路就是,拆解成两个部分,第一部分是这个数是不是满足条件,也就是本题,判断这个数是不是丑数,第二部分就是第几个丑数 就涉及循环递增了,一直算到第1500个;

方法1: 第一步。

写一个判断是否为丑数的函数

图1 判断是否为丑数的函数

第二步。

第二部的思路主要是通过循环去递增,并且随着数的递增去判断是否为丑数并用数去记录,确保是想要的那个第几个的数。(好乱说的,上代码)

图2 算出第index个丑数的方法

(1)number为记录求解的结果的变量,

(2)count为记录第几个,每次判断为丑数后,丑数加1

(3)index为你要求的第几个丑数;

这种方法有些慢,毕竟是遍历的方法

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

方法二:

还没看懂,未完待续。。。

上一篇 下一篇

猜你喜欢

热点阅读