程式語言 - LeetCode - CPP - 264. Ugly Number II



參考資訊:
https://www.cnblogs.com/grandyang/p/4743837.html

題目:


解答:

class Solution {
public:
    int nthUglyNumber(int n) {
        vector<int> ans(1, 1);

        int i2 = 0;
        int i3 = 0;
        int i5 = 0;

        while (ans.size() < n) {
            int m2 = ans[i2] * 2;
            int m3 = ans[i3] * 3;
            int m5 = ans[i5] * 5;

            int mn = min({m2, m3, m5});
            if (mn == m2) {
                i2 += 1;
            }
            if (mn == m3) {
                i3 += 1;
            }
            if (mn == m5) {
                i5 += 1;
            }
            ans.push_back(mn);
        }

        return ans.back();
    }
};