Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 1.43 KB

264-ugly-number-ii.md

File metadata and controls

58 lines (40 loc) · 1.43 KB

264. Ugly Number II - 丑数 II

编写一个程序,找出第 n 个丑数。

丑数就是只包含质因数 2, 3, 5正整数

示例:

输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。

说明:  

  1. 1 是丑数。
  2. n 不超过1690。

题目标签:Heap / Math / Dynamic Programming

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
cpp 112 ms 22 MB
class Solution {
public:
    // 缓存所有丑数
    vector<int> nums;

    int nthUglyNumber(int n) {
        if (nums.empty()) {
            for (long a = 1; a <= INT_MAX; a *= 2) {
                for (long b = a; b <= INT_MAX; b *= 3) {
                    for (long c = b; c <= INT_MAX; c *= 5) {
                        nums.push_back(c);
                    }
                }
            }
            sort(nums.begin(), nums.end());
        }
        return nums[n - 1];
    }
};