LeetCode 264: Ugly Number II
来源:互联网 发布:手机知乎怎么删除提问 编辑:程序博客网 时间:2024/06/05 02:56
Ugly Number II
Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first 10
ugly numbers.
Note that 1
is typically treated as an ugly number.
Hint:
- The naive approach is to call
isUgly
for every number until you reach the nth one. Most numbers are not ugly. Try to focus your effort on generating only the ugly ones. - An ugly number must be multiplied by either 2, 3, or 5 from a smaller ugly number.
- The key is how to maintain the order of the ugly numbers. Try a similar approach of merging from three sorted lists: L1, L2, and L3.
- Assume you have Uk, the kth ugly number. Then Uk+1 must be Min(L1 * 2, L2 * 3, L3 * 5).
解题思路
使用动态规划(Dynamic Programming)求解,代码如下:
class Solution {public: int nthUglyNumber(int n) { int uglyNums[n] = {1}; int factor2 = 2, factor3 = 3, factor5 = 5; int index2 = 0, index3 = 0, index5 = 0; for (int i = 1; i < n; ++i) { uglyNums[i] = min(factor2, min(factor3, factor5)); if (uglyNums[i] == factor2) factor2 = 2 * uglyNums[++index2]; if (uglyNums[i] == factor3) factor3 = 3 * uglyNums[++index3]; if (uglyNums[i] == factor5) factor5 = 5 * uglyNums[++index5]; } return uglyNums[n-1]; }};
0 0
- Leetcode 264(Ugly Number II)
- leetCode #264 Ugly Number II
- leetcode 264: Ugly Number II
- LeetCode(264)Ugly Number II
- [Leetcode 264] Ugly Number II
- Leetcode 264 : Ugly Number II
- leetcode 264 : Ugly Number II
- LeetCode 264: Ugly Number II
- LeetCode 264 Ugly Number II
- 【LeetCode-264】Ugly Number II
- (LeetCode 264) Ugly Number II
- LeetCode 264 Ugly Number II
- LeetCode 264: Ugly Number II
- LeetCode[264] Ugly Number II
- Leetcode -- Ugly Number II
- LeetCode: Ugly Number II
- [leetcode] Ugly Number II
- Leetcode: Ugly Number II
- 【分享】山田君与7个魔女共12集全+OVA中文字幕下载
- Android 如何解决dialog弹出时无法捕捉Activity的back事件
- android找不到.xml和资源文件
- 在windows下进行linux开发:利用Vagrant+virtualbox
- 淘宝动态配置diamond-server 源码讲解
- LeetCode 264: Ugly Number II
- 海思GPIO
- DCT变换、DCT反变换、分块DCT变换
- ArchSummit干货分享:通向企业级的OpenStack网络服务
- C# 使用Stopwatch类测试代码的运行时间或效率
- 关于二维码和条形码的生成
- 欢迎使用CSDN-markdown编辑器
- 在页面中使用Flowplayer播放器
- How to use MongoDB as a pure in-memory DB (Redis style)