LeetCode-313. Super Ugly Number (JAVA)超级丑数
来源:互联网 发布:wp login.php 编辑:程序博客网 时间:2024/06/05 19:06
313. Super Ugly Number
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 listprimes
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 givenprimes
= [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.
(4) The nth super ugly number is guaranteed to fit in a 32-bit signed integer.
与丑数不同的是,之前求丑数是从2,3,5中找,而本题是给定的质数,求出他们的倍数的超级丑数
质数集合可以任意给定,由于我们不知道质数的个数,我们可以用一个idx数组来保存当前的位置,然后我们从每个子链中取出一个数,找出其中最小值,然后更新idx数组对应位置,注意有可能最小值不止一个,要更新所有最小值的位置
参考:
LeetCode-263.264. Ugly Number (JAVA)丑数
public int nthSuperUglyNumber(int n, int[] primes) {int[] dp = new int[n];// 第一个超级丑数是1dp[0] = 1;int[] idxPrimes = new int[primes.length];int counter = 1;while (counter < n) {int min = Integer.MAX_VALUE;for (int i = 0; i < primes.length; i++) {// idxPrimes[i]代表每个丑数的个数,// 比如丑数2题目的2,3,5,// idxPrimes[0]代表2的下标// idxPrimes[1]代表3的下标// idxPrimes[2]代表5的下标int temp = dp[idxPrimes[i]] * primes[i];min = min < temp ? min : temp;}// 如果min和 dp[idxPrimes[i]] * primes[i]相等,// 则其对应的下标++for (int i = 0; i < primes.length; i++) {if (min == dp[idxPrimes[i]] * primes[i]) {idxPrimes[i]++;}}dp[counter] = min;counter++;}return dp[n - 1];}
- LeetCode-313. Super Ugly Number (JAVA)超级丑数
- leetcode 313. Super Ugly Number-超级丑数
- leetcode 313. Super Ugly Number 超级丑数
- 超级丑数(Super Ugly Number)
- LeetCode 313. Super Ugly Number(超级丑的数字)
- 518.Super Ugly Number-超级丑数(中等题)
- Ugly Number | Leetcode 丑数
- leetcode-Ugly Number(丑数)
- LeetCode-263.264. Ugly Number II (JAVA)丑数
- leetcode oj java 313. Super Ugly Number
- leetcode 64.Ugly Number-丑数
- LeetCode 263 Ugly Number(丑数)
- Ugly Number II | Leetcode 丑数II
- 【LeetCode】263. Ugly Number 丑数判断
- leetcode 263.264.313 Ugly Number 丑数
- [leetcode]263. Ugly Number丑数
- leetcode 263. Ugly Number丑数
- ugly number(丑数)
- python语句实现文件合并
- 周志华《Machine Learning》学习笔记(11)--聚类
- HDOJ 2191 (多重背包/二进制分解/单调队列优化DP)
- 背包——AtCoder Regular Contest 073 #D
- 集群、分布式环境下5种session处理策略
- LeetCode-313. Super Ugly Number (JAVA)超级丑数
- 永久改变SELINUX安全上下文
- 如何培养卓越的项目推动力
- HTML5学习之表单
- C语言第六次作业练习
- 二分推进算法
- 从文件中读取数据动态路径绘制
- 分布式Session存储方案
- python学习笔记(十)错误处理、Matplotlib绘图示例