[leetcode] 264. Ugly Number II
2016-08-26 10:57
302 查看
Write a program to find the
Ugly numbers are positive numbers whose prime factors only include
Note that
Hint:
The naive approach is to call
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).
解法一:
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, 12is the sequence of the first
10ugly numbers.
Note that
1is typically treated as an ugly number.
Hint:
The naive approach is to call
isUglyfor 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).
解法一:
class Solution { public: int nthUglyNumber(int n) { if(n==1) return 1; vector<int> nums; nums.push_back(1); int cnt = 2; int res = 1; int l2 = 0, l3 = 0, l5 = 0; while(cnt<=n){ res = min(nums[l2]*2,nums[l3]*3); res = min(res,nums[l5]*5); if(res==nums[l2]*2) l2++; if(res==nums[l3]*3) l3++; if(res==nums[l5]*5) l5++; nums.push_back(res); cnt++; } return res; } };
相关文章推荐
- [leetcode]264. Ugly Number II
- (LeetCode 264) Ugly Number II
- leetcode:数学: Ugly Number II(264)
- leetcode264 Ugly Number II
- LEETCode 264. Ugly Number II
- LeetCode 264. Ugly Number II
- leetcode 264. Ugly Number II
- leetcode 263&264: Ugly Number I & II
- LeetCode 264. Ugly Number II
- [LeetCode#264]Ugly Number II
- leetcode 264. Ugly Number II
- LeetCode 264. Ugly Number II
- LeetCode - 263. Ugly Number & 264. Ugly Number II & 313. Super Ugly Number
- [leetcode 263 264]Ugly Number I II
- leetcode 264. Ugly Number II
- (medium)LeetCode 264.Ugly Number II
- LeetCode[264] Ugly Number II
- [leetcode-264]Ugly Number II(java)
- 264. Ugly Number II LeetCode
- leetcode 264. Ugly Number II