标签:
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:
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.1 public class Solution { 2 public int nthUglyNumber(int n) { 3 int ans = 0; 4 List<Integer> list1 = new ArrayList<Integer>(); 5 List<Integer> list2 = new ArrayList<Integer>(); 6 List<Integer> list3 = new ArrayList<Integer>(); 7 list1.add(1);list2.add(1);list3.add(1); 8 for(int i = 0; i < n; i++){ 9 ans = Math.min(Math.min(list1.get(0),list2.get(0)), list3.get(0)); 10 if(ans == list1.get(0)) list1.remove(0); 11 if(ans == list2.get(0)) list2.remove(0); 12 if(ans == list3.get(0)) list3.remove(0); 13 list1.add(ans*2); 14 list2.add(ans*3); 15 list3.add(ans*5); 16 } 17 return ans; 18 } 19 }
按照提示很容易就做出来了。
264. Ugly Number II java solutions
标签:
原文地址:http://www.cnblogs.com/guoguolan/p/5638573.html