leetcode 264. Ugly Number II
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 264. Ugly Number II相关的知识,希望对你有一定的参考价值。
leetcode 264. 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, and n does not exceed 1690.
三个list分别记录2的倍数,3的倍数,5的倍数,每次挑选出一个数以后就把他的2倍,3倍,5倍加入相应list
public class Solution { public int nthUglyNumber(int n) { if (n==0)return 0; int res=0; List<Integer> a = new LinkedList<Integer>(); List<Integer> b = new LinkedList<Integer>(); List<Integer> c = new LinkedList<Integer>(); a.add(1); b.add(1); c.add(1); for (int i=0;i<n;i++){ res=Math.min(a.get(0),Math.min(b.get(0),c.get(0))); if (res==a.get(0)){ a.remove(0); } if (res==b.get(0)){ b.remove(0); } if (res==c.get(0)){ c.remove(0); } a.add(res*2); b.add(res*3); c.add(res*5); } return res; } }
以上是关于leetcode 264. Ugly Number II的主要内容,如果未能解决你的问题,请参考以下文章