Ugly Number II
来源:互联网 发布:unity 界面 mac 编辑:程序博客网 时间:2024/06/16 15:28
题目描述:
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 arenot 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).
public class Solution { public int nthUglyNumber(int n) { int u = 0; Deque<Integer> l1 = new ArrayDeque<Integer>(); Deque<Integer> l2 = new ArrayDeque<Integer>(); Deque<Integer> l3 = new ArrayDeque<Integer>(); l1.offer(1); l2.offer(1); l3.offer(1); for(int i=0; i<n; i++) { u = Math.min( Math.min(l1.peek(), l2.peek()), l3.peek()); if(l1.peek() == u) l1.poll(); if(l2.peek() == u) l2.poll(); if(l3.peek() == u) l3.poll(); l1.offer(u*2); l2.offer(u*3); l3.offer(u*5); } return u; } }
0 0
- Ugly Number Ugly Number II
- Leetcode -- Ugly Number II
- LeetCode: Ugly Number II
- [leetcode] Ugly Number II
- 264 Ugly Number II
- Leetcode: Ugly Number II
- [LeetCode] Ugly Number II
- Ugly Number II
- LeetCode Ugly Number II
- Ugly Number I II
- [leetcode] Ugly Number II
- [LeetCode] Ugly Number II
- LeetCode ||Ugly Number II
- Ugly Number II
- Leetcode: Ugly Number II
- leetcode:ugly Number II
- Ugly Number II
- Ugly Number II
- 在windows下搭建基于nginx的直播
- python for 循环
- ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序
- listview的多条目样式适配
- 解决:Connections could not be acquired from the underlying database!
- Ugly Number II
- 接口测试总结
- maven学习(三)——eclipse集成maven
- Android开发注意点
- centos yum源添加
- c3p0连接池
- 安卓设置点击效果
- [Hadoop]How MapReduce Works
- Frame中的paint什么时候调用