zoukankan      html  css  js  c++  java
  • 剑指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;
    }
    

       

  • 相关阅读:
    parallel-fastq-dump是一个大坑
    生信软件安装(2)
    2018年一些感悟
    raw data/PF data/Q30 data/clean data的不同
    专题
    结构体
    指针和数组
    指针
    函数的声明
    C语言中的函数
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/12056934.html
Copyright © 2011-2022 走看看