剑指offer-面试题49-丑数-空间换时间

Posted buaazhhx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-面试题49-丑数-空间换时间相关的知识,希望对你有一定的参考价值。

/*
题目:
	求从1开始的第n个丑数。
*/
/*
思路:
	按顺序列出各个丑数。
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>


using namespace std;


int GetUglyNumber_Solution(int index) {
    if(index <= 0) return 0;
    int uglyNumbers[index];
    uglyNumbers[0] = 1;
    int *pMultiply2 = uglyNumbers;
    int *pMultiply3 = uglyNumbers;
    int *pMultiply5 = uglyNumbers;
    int next = 1;

    while(next < index){
        uglyNumbers[next++] = min(min((*pMultiply2)*2,(*pMultiply3)*3),(*pMultiply5)*5);

        while((*pMultiply2)*2 <= uglyNumbers[next-1]){
                pMultiply2++;
        }
        while((*pMultiply3)*3 <= uglyNumbers[next-1]){
                pMultiply3++;
        }
        while((*pMultiply5)*5 <= uglyNumbers[next-1]){
                pMultiply5++;
        }
    }
    return uglyNumbers[index-1];

}

int main(){
    cout<<GetUglyNumber_Solution(6);

    return 0;
}

   

以上是关于剑指offer-面试题49-丑数-空间换时间的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer - 面试题49:丑数

[剑指offer]面试题34:丑数

《剑指offer》第四十九题(丑数)

剑指Offer对答如流系列 - 丑数

剑指Offer49. 丑数(三指针)

剑指Offer49. 丑数(三指针)