醜いIIのJavaのleetcode数

トピック:

n番目の醜い番号を検索するプログラムを書きます。

醜いは、素因数の数だけ2、3、5の正の整数で含有します。

例:

入力:N = 10
出力:12
説明:1、2、3、4、5、6、8、9、10、12はフロント数醜い10です。
説明:  

図1は、醜いの数です。
nが1690以下です。

 

問題解決:

3ポインタを使用して

クラスソリューション{
     公共 のint nthUglyNumber(INT N-){
         int型 MIN2 = 0 ;
         int型 MIN3 = 0 ;
         int型 min5 = 0 ;
         intです [] =結果新しい新しい INT [N-]; // いくつかの醜い格納するための結果 
        結果を[0] = 。1 ;
         のためのint型 Iは++; I <N-I = 1 ){
             // * 3 2 * 5醜い数がまだ醜いの数である
            整数分= Math.min(Math.min(結果[MIN2] * 2を結果[ MIN3] * 3)、* [min5]結果5。。);
             IF(分== * 2 [MIN2]結果){ 
                MIN2 ++ 
            } 
            であれば(分== [MIN3] * 3結果
                MIN3 ++ もし(MIN ==結果[min5] * 5 
                min5 ++ 
            その結果、[I] = 分。
        } 
        戻り結果[N - 1 ]。
    } 
}

 

おすすめ

転載: www.cnblogs.com/yanhowever/p/11470213.html