文章目录

  • 1. LeetCode 263. 丑数
    • 解题
  • 2. LeetCode 264. 丑数 II
    • DP解题

1. LeetCode 263. 丑数

编写一个程序判断给定的数是否为丑数。

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

示例 1:
输入: 6
输出: true
解释: 6 = 2 × 3示例 2:
输入: 8
输出: true
解释: 8 = 2 × 2 × 2示例 3:
输入: 14
输出: false
解释: 14 不是丑数,因为它包含了另外一个质因数 7。
说明:
1 是丑数。
输入不会超过 32 位有符号整数的范围: [−2^31,  2^31 − 1]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ugly-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题

  • 类似题目:
    LeetCode 1201. 丑数 III(最小公倍数+二分查找)
    程序员面试金典 - 面试题 17.09. 第 k 个数(set优先队列/DP)
    LeetCode 313. 超级丑数(动态规划)
    LeetCode 878. 第 N 个神奇数字(二分查找)
class Solution {public:bool isUgly(int num) {if(num < 0)return false;int n;while(num != 1){n = num;//记录原数if(num%2 == 0)num /= 2;if(num%3 == 0)num /= 3;if(num%5 == 0)num /= 5;if(n == num)  //操作下来,数没变return false;}return true;}
};

2. LeetCode 264. 丑数 II

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

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

示例:
输入: n = 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
说明:
1 是丑数。
n 不超过1690。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ugly-number-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

DP解题

  • 类似题目:程序员面试金典 - 面试题 17.09. 第 k 个数(set优先队列/DP)
  • 参考别人的解法
  • 每次将前面的所有数乘以 k ( 2,3,5 ),取比前一个丑数 Ui-1 大,且最小的
  • 但是不必遍历前面所有数,因为 前面有一个丑数 Ux* k <= Ui-1 ,x++,那么前面式子不成立的时候,下标 x 就是下次 乘以 k 的丑数位置
class Solution {public:int nthUglyNumber(int n) {int dp[n+1] = {0};dp[1] = 1;int i2=1, i3=1, i5=1;for(int i = 2; i <= n; i++){dp[i] = min(dp[i2]*2, min(dp[i3]*3, dp[i5]*5));if(dp[i2]*2 == dp[i])i2++;if(dp[i3]*3 == dp[i])i3++;if(dp[i5]*5 == dp[i])i5++;}return dp[n];}
};

  • 优先队列
class Solution {public:int nthUglyNumber(int n) {set<long> s;s.insert(1);int count = 0;long tp;while(count != n){count++;tp = *s.begin();s.erase(s.begin());s.insert(tp*2);s.insert(tp*3);s.insert(tp*5);}return tp;}
};

LeetCode 263. 丑数 264. 丑数 II(DP)相关推荐

  1. 【LeetCode】263.丑数 264. 丑数 II

    I. 263. 丑数(是否为丑数) 一.题目描述 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 ...

  2. leetcode 263, 264, 1201, 313. Ugly Number I, II, III, Super Ugly Number(leetcode 丑数问题合集)

    263. Ugly Number https://leetcode.com/problems/ugly-number/ 本题题解由下面的 264. Ugly Number II 改造而来,所以效率会比 ...

  3. leetcode - 264. 丑数 II

    264. 丑数 II -------------------------------------------- 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示 ...

  4. LeetCode 264. 丑数 II

    264. 丑数 II Ideas 竟然没想到用小根堆,白学了,再把小根堆抄一遍. Code Python class Solution:def nthUglyNumber(self, n: int) ...

  5. 86. Leetcode 264. 丑数 II (动态规划-基础题)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

  6. 78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, ...

  7. leetcode 264. 丑数 II(堆)

    给你一个整数 n ,请你找出并返回第 n 个 丑数 . 丑数 就是只包含质因数 2.3 和/或 5 的正整数. 示例 1: 输入:n = 10 输出:12 解释:[1, 2, 3, 4, 5, 6, ...

  8. LeetCode 264.丑数 II(动态规划)

    题目描述 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10 ...

  9. LeetCode 264. 丑数 II--动态规划

    丑数 II 编写一个程序,找出第 n 个丑数. 丑数就是质因数只包含 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 1 ...

最新文章

  1. LUA C 交互 cocos
  2. 用sqlplus为oracle创建用户和表空间
  3. 服务器运行环境怎么搭建,服务器运行环境怎么快速搭建?
  4. java 矩阵题目_java练习本(20190604)
  5. python3.7安装包多大_python3.7 pip 安装第三方包
  6. IDaaS企业身份管理训练营火热报名中 体验新一代企业云身份服务
  7. iphone降级_ios14.2怎么降级到14.1 ios14.2耗电严重吗[多图]-热门资讯
  8. 【渝粤教育】国家开放大学2019年春季 3717天然气管道长输技术 参考试题
  9. MQTT客户端库-Paho GO
  10. cocos 制作动态生成内容的列表_零代码工具,让你在线轻松制作交互内容!
  11. 上科大、腾讯提出Liquid Warping GAN,实现人体动作迁移的新高度!
  12. 第6章 数据库索引优化
  13. 最全面的MySQL面试题大全-二
  14. 浅析SQL SERVER执行计划中的各类怪相
  15. Android SQLite用sql语句进行增删改查
  16. 服装进销存软件排名前十名,最新门店进销存测评现已出排行榜
  17. e320/t420/w520等 qm67/hm65/hm67等 6系芯片组更新BIOS以安装三代酷睿cpu提升性能的想法
  18. 量化经济学:手把手教你如何使用EXCEL分析股票历史数据
  19. 浅谈Md5+Salt加密
  20. Promise.all等待方法执行完毕再执行

热门文章

  1. ModuleNotFoundError: No module named '_ctypes' ERROR:Command errored out with exit status 1: python
  2. 【数字图像处理】傅里叶变换在图像处理中的应用
  3. linux select shell,linux之shell编程select和case用法
  4. android代码导入有错误,android新项目导入后进行编译出现cmake错误
  5. html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
  6. html:web前端开发规范
  7. 微信公众号--相关资料
  8. Sub-process /usr/bin/dpkg returned an error code (1)解决办法
  9. A Simple Note on P4FPGA: A Rapid Prototyping Framework for P4
  10. js 日期天数相加减,格式化yyyy-MM-dd