264. 丑数 II

Problem: 264. 丑数 II

思路

这道题目关键在于理解丑数的生成规律。丑数就是质因子只包含 2、3 和 5 的正整数。因此我们可以创建一个dp数组用来保存计算丑数的子过程。在这个过程中只要保证数据是那个小到大生成的就可以了。

解题方法

1.初始化丑数数组dp,dp[1] = 1,表示第一个丑数为1。
2.初始化三个指针i2、i3、i5,都指向第一个丑数。
3.每次生成新的丑数,都是从dp[i2]*2、dp[i3]*3、dp[i5]*5这三个数中取最小的一个,作为新的丑数。这个新的丑数就是下一个丑数。
4.将数值等于丑数的数字指针向后移动一步
重复步骤3~4,直到找到第n个丑数。

复杂度

时间复杂度:

O ( n ) O(n) O(n)。因为要遍历一遍数组

空间复杂度:

O ( n ) O(n) O(n)。额外空间dp数组。

Code

class Solution {
    public int nthUglyNumber(int n) {
        int[] dp = new int[n + 1];
        dp[1] = 1;
        for (int i = 2, i2 = 1, i3 = 1, i5 = 1, a, b, c; i <= n; i++) {
            a = dp[i2] * 2;
            b = dp[i3] * 3;
            c = dp[i5] * 5;
            int cur = Math.min(a, Math.min(b, c));
            if (cur == a) {
                i2++;
            }
            if (cur == b) {
                i3++;
            }
            if (cur == c) {
                i5++;
            }
            dp[i] = cur;

        }
        return dp[n];
    }
}

相关推荐

  1. 264. II

    2024-02-10 20:22:01       35 阅读
  2. 264. II

    2024-02-10 20:22:01       31 阅读
  3. LeetCode 264 II

    2024-02-10 20:22:01       14 阅读
  4. 【归并排序】264. II

    2024-02-10 20:22:01       31 阅读
  5. II

    2024-02-10 20:22:01       23 阅读
  6. LertCode263.

    2024-02-10 20:22:01       20 阅读
  7. 263.

    2024-02-10 20:22:01       3 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-10 20:22:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-10 20:22:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-10 20:22:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-10 20:22:01       18 阅读

热门阅读

  1. 某magnet搜索接口

    2024-02-10 20:22:01       24 阅读
  2. 5. 最长回文子串

    2024-02-10 20:22:01       31 阅读
  3. Vue 前置导航

    2024-02-10 20:22:01       23 阅读
  4. C#系列-访问SqlServer+Mysql+Oracle数据库(6)

    2024-02-10 20:22:01       29 阅读
  5. C语言变量与常量..

    2024-02-10 20:22:01       25 阅读
  6. 双频路由原理

    2024-02-10 20:22:01       27 阅读
  7. PYTHON 120道题目详解(52-54)

    2024-02-10 20:22:01       26 阅读
  8. Qt QML学习(文章链接汇总)

    2024-02-10 20:22:01       22 阅读