Skip to content
js
/*
 * @lc app=leetcode.cn id=264 lang=javascript
 *
 * [264] 丑数 II
 */

// @lc code=start
/**
 * @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++) {
    let num2 = 2 * dp[p2],
      num3 = 3 * dp[p3],
      num5 = 5 * dp[p5];
    dp[i] = Math.min(Math.min(num2, num3), num5);
    if (dp[i] === num2) {
      p2++;
    }
    if (dp[i] === num3) {
      p3++;
    }
    if (dp[i] === num5) {
      p5++;
    }
  }
  return dp[n];
};
// @lc code=end

上次更新于: