【LeetCode】 313. Super Ugly Number
2017-01-18 00:22
253 查看
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
size
Note:
(1)
(2) The given numbers in
(3) 0 <
106, 0 <
1000.
(4) The nth super ugly number is guaranteed to fit in a 32-bit signed integer.
public class Solution {
public int nthSuperUglyNumber(int n, int[] primes) {
int[] res = new int
;
int[] index = new int[primes.length];
int[] value = new int[primes.length];
Arrays.fill(value, 1);
int next = 1;
for (int i = 0; i < n; i++) {
res[i] = next;
next = Integer.MAX_VALUE;
for (int j = 0; j < primes.length; j++) {
if (value[j] == res[i]) {
value[j] = res[index[j]++] * primes[j];
}
next = Math.min(next, value[j]);
}
}
return res[n - 1];
}
}
Super ugly numbers are positive numbers whose all prime factors are in the given prime list
primesof
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)
1is a super ugly number for any given
primes.
(2) The given numbers in
primesare in ascending order.
(3) 0 <
k≤ 100, 0 <
n≤
106, 0 <
primes[i]<
1000.
(4) The nth super ugly number is guaranteed to fit in a 32-bit signed integer.
public class Solution {
public int nthSuperUglyNumber(int n, int[] primes) {
int[] res = new int
;
int[] index = new int[primes.length];
int[] value = new int[primes.length];
Arrays.fill(value, 1);
int next = 1;
for (int i = 0; i < n; i++) {
res[i] = next;
next = Integer.MAX_VALUE;
for (int j = 0; j < primes.length; j++) {
if (value[j] == res[i]) {
value[j] = res[index[j]++] * primes[j];
}
next = Math.min(next, value[j]);
}
}
return res[n - 1];
}
}
相关文章推荐
- Django之Helloworld
- fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题
- 【leetcode】【Easy】【463. Island Perimeter】
- Java实现常用简单负载均衡(LoadBalance)
- Lightoj 1166 - Old Sorting (简单贪心)
- javaGUI基本知识讲解
- javaGUI基本知识讲解
- 疯狼算法日记0002-句子中每个单词逆序
- LaTeX快速上手
- Firebug: 已拦截跨源请求:同源策略禁止读取位于XXX的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-
- 《深入理解JVM》--内存管理机制
- 【设计模式】—-(6)适配器模式(结构型)
- react生命周期方法
- javaGUI之基本布局方式
- javaGUI之基本布局方式
- 读Linux源码分析ov5640在三星exynos4412平台上的使用
- Swift 3.0 版本变化
- (一)常见UI界面以及部分功能的实现
- Emlog博客网站数据完美搬家教程
- Emlog博客网站数据完美搬家教程