首页 > 其他 > 详细

Super Ugly Number

时间:2016-07-05 15:32:24      阅读:244      评论:0      收藏:0      [点我收藏+]
 1 public class Solution {
 2     public int nthSuperUglyNumber(int n, int[] primes) {
 3         if (n == 0 || primes.length == 0) {
 4             return 1;
 5         }
 6         List<Integer> result = new ArrayList<>();
 7         result.add(1);
 8         int[] record = new int[primes.length];
 9         Set<Integer> set = new HashSet<>();
10         int current = 0;
11         int index = 0;
12         while (result.size() < n) {
13             current = primes[0] * result.get(record[0]);
14             index = 0;
15             for (int i = 1; i < primes.length; i++) {
16                 if (current > primes[i] * result.get(record[i])) {
17                     current = primes[i] * result.get(record[i]);
18                     index = i;
19                 }
20             }
21             if (!set.contains(current)) {
22                 result.add(current);
23                 set.add(current);
24             }
25             record[index]++;
26         }
27         return result.get(result.size() - 1);
28     }
29 }

1. data initialization : index = 0.

2. use a set to deduplicate the numbers.

 

Super Ugly Number

原文:http://www.cnblogs.com/shuashuashua/p/5643744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!