Leetcode: Super Ugly Number
2016-01-01 07:21
302 查看
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all prime factors are in the given prime list primes of size k. For example, [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] is the sequence of the first 12 super ugly numbers given primes = [2, 7, 13, 19] of size 4. Note: (1) 1 is a super ugly number for any given primes. (2) The given numbers in primes are in ascending order. (3) 0 < k ≤ 100, 0 < n ≤ 106, 0 < primes[i] < 1000.
用一个arraylist来存同时赢得竞标的primes, 然后这些primes对应的pointer都要往后移一位
public class Solution { public int nthSuperUglyNumber(int n, int[] primes) { int[] uglys = new int ; uglys[0] = 1; int[] pointers = new int[primes.length]; for (int i=1; i<=n-1; i++) { int min=Integer.MAX_VALUE; ArrayList<Integer> minPm = new ArrayList<Integer>(); // initialization for (int j=0; j<primes.length; j++) { if (uglys[pointers[j]] * primes[j] <= min) { if (uglys[pointers[j]] * primes[j] < min) { min = uglys[pointers[j]] * primes[j]; minPm = new ArrayList<Integer>(); } minPm.add(j); } } for (int k=0; k<minPm.size(); k++) { pointers[minPm.get(k)]++; } uglys[i] = min; } return uglys[n-1]; } }
相关文章推荐
- 三个“老掉牙”的推广引流绝招,“姜”还是老的辣!
- Android N 将替代使用 OpenJDK
- 1.Basic Techniques and Knowledge
- SQL常用查询及示例
- C语言数组
- 2015总结,2016展望
- Leetcode: Burst Balloons
- 回收与展望
- [Eclipse] Importerror no module named pwd-----getpass.getuser()
- hbase master 无法启动
- 面试题9 不使用额外的 buffer 删除单向链表中的重复项
- 2015年读书列表
- NSValue的使用...@encode(type)...int strcmp(const char *, const char *); 返回 0 表示相等
- 一个单向链表的实现
- Java注解实践
- Java注解实践
- Java注解实践
- hadoop文件系统的目录结构及datanode不能启动
- NSNumber的使用
- Oracle 11g R2安装手册(图文教程)For Windows