問題: https://leetcode.com/problems/ugly-number-ii
醜い数は、5が最小、およびバックカレントポインタの最小値1つの動きとし、各乗算の後、得られた因子2、3を乗じた小さな醜い数だけ大きいです。(ベクターパッケージにもう少しゆっくり、そして限り4msのようなケースではありません)
クラス解決{ パブリック: INT nthUglyNumber(INT N){ ベクトル < INT > DP(N + 1 )。 DP [ 1 ] = 1 。 ベクター < INT > IDX { 1、1、1 }。 ベクター < INT > NUMS { 2、3、5 }。 以下のために(int型 I = 2 ; iが++; iが<= N ) { ベクトルを <int型 > RES(nums.size()); int型 MIN_NUM = INT_MAX。 用(INT J = 0 ; J <nums.size(); J ++ ) { RES [J] = NUMS [J] * DP [IDX [J]。 MIN_NUM = 分(MIN_NUM、RES [J])。 } のための(INT J = 0 ; J <nums.size(); J ++ ) { 場合(RES [J] == MIN_NUM) { IDX [J] ++ } ; } DP [I] = MIN_NUM。 } 戻りDP [n]は、 } }。