# 264. 丑数 II

// 给你一个整数 n ,请你找出并返回第 n 个 丑数 。
// 丑数 就是只包含质因数 2、3 和/或 5 的正整数。
/**
 * @param {number} n
 * @return {number}
 */
var nthUglyNumber = function(n) {
  const dp = new Array(n + 1).fill(0);

  dp[1] = 1;
  let p2 = 1,
    p3 = 1,
    p5 = 1;
  for (let i = 2; i <= n; i++) {
    const num2 = dp[p2] * 2,
      num3 = dp[p3] * 3,
      num5 = dp[p5] * 5;
    dp[i] = Math.min(num2, num3, num5);

    if (dp[i] === num2) p2++;
    if (dp[i] === num3) p3++;
    if (dp[i] === num5) p5++;
  }

  return dp[n];
};
console.log(nthUglyNumber(10)); //  12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Last Updated: 6/27/2023, 7:40:45 PM