lc-264


给你一个整数 n ,请你找出并返回第 n丑数

丑数 就是质因子只包含 235 的正整数。

示例 1:

输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。

示例 2:

输入:n = 1
输出:1
解释:1 通常被视为丑数。

提示:

  • 1 <= n <= 1690

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int nthUglyNumber(int n) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        Set<Integer> mySet = new HashSet<>();
        pq.add(1);
        mySet.add(1);
        int result = 0;
        for (int i = 0; i < n; i++) {
            result = pq.poll();
            if (!mySet.contains(result * 2) && result < Integer.MAX_VALUE / 2) {
                pq.add(result * 2);
                mySet.add(result * 2);
            }
            if (!mySet.contains(result * 3) && result < Integer.MAX_VALUE / 3) {
                pq.add(result * 3);
                mySet.add(result * 3);
            }
            if (!mySet.contains(result * 5) && result < Integer.MAX_VALUE / 5) {
                pq.add(result * 5);
                mySet.add(result * 5);
            }
        }
        return result;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

文章作者: 倪春恩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 倪春恩 !