常用算法

2019-08-04-算法-丑数

2019-08-04  本文已影响0人  王元

定义:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。

求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。

1,一遍遍历法-效率比较低

--

public static int getUglyNumber(int index) {
    int number = 0;
    for (int i = 0; i < index; i++) {
        if(isUgly(i)) {
            number = i;
            break;
        }
    }
    return number;
}

public static boolean isUgly(int number) {
    while (number % 2 == 0) {
        number = number / 2;
    }
    while (number % 3 == 0) {
        number = number / 3;
    }
    while (number % 5 == 0) {
        number = number / 5;
    }
    return number == 1;
}

2,空间换时间法:时间效率较高

上一篇 下一篇

猜你喜欢

热点阅读