[LeetCode解決レポート] 264醜い数II

見つけるためのプログラム書く  n番目の醜い番号を。

醜い番号は 正の数  、その素因数のみが含ま  2, 3, 5。 

例:

入力: N = 10
 出力: 12
 説明: 1、2、3、4、5、6、8、9、10、12は、最初の10の醜い番号の配列です。

注意:  

  1. 1 典型的には、醜い数として扱われます。
  2. n 1690を超えることはできません
class Solution {
public:
    int nthUglyNumber(int n) {
        vector<int> res(1, 1);
        int i2 = 0, i3 = 0, i5 = 0;
        
        while (res.size() < n) {
            int num2 = res[i2]*2, num3 = res[i3]*3, num5 = res[i5]*5;
            int mn = min(num2, min(num3, num5));
            
            if (mn == num2)
                i2 ++;
            if (mn == num3)
                i3 ++;
            if (mn == num5)
                i5 ++;
            res.push_back(mn);
        }
        return res.back();
    }
};

 

公開された480元の記事 ウォン称賛40 ビュー46万+

おすすめ

転載: blog.csdn.net/caicaiatnbu/article/details/104235293