[LeetCode]313. Super Ugly Number超级丑数,丑数系列看这一道就行了
丑数系列的题看这一道就可以了
/*
和ugly number2差不多,不过这次的质因子多了,所以用数组来表示质因子的target坐标
target坐标指的是这个质因子此次要乘的前任丑数是谁
*/
public int nthSuperUglyNumber(int n, int[] primes) {
//记录相乘坐标,存的是每个质因子对应相乘搭档在丑数数组中的下标
int[] target = new int[primes.length];
//动态规划数组
int[] dp = new int[n];
//第一个丑数是0
dp[0] = 1;
for (int i = 1; i < n; i++) {
//每次都要把所有质因子都乘上对应数试试,维护一个min和一个index
int min = Integer.MAX_VALUE;
int index = 0;
for (int j = 0; j < primes.length; j++) {
if (min>primes[j]*dp[target[j]])
{
min = primes[j]*dp[target[j]];
index = j;
}
//别忘了,如果有另外的质因子也组成了相同的数,那么这个质因子的target要跳过
//因为得到相同丑数的组合只保留一种即可
//在丑数2中,由于是分别判断2,3,5,所以重复的组合都跳过了
else if (min==primes[j]*dp[target[j]]) target[j]++;
}
//更新dp和target
dp[i] = min;
target[index]++;
}
return dp[n-1];
}
[LeetCode]313. Super Ugly Number超级丑数,丑数系列看这一道就行了的更多相关文章
- [LeetCode] 313. Super Ugly Number 超级丑陋数
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- Leetcode 313. super ugly number
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- 313 Super Ugly Number 超级丑数
编写一段程序来寻找第 n 个超级丑数.超级丑数是指其所有质因数都在长度为k的质数列表primes中的正整数.例如,[1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] ...
- leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes
263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution ...
- [LeetCode] Super Ugly Number 超级丑陋数
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- [LintCode] Super Ugly Number 超级丑陋数
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- 313. Super Ugly Number
题目: Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose ...
- 【leetcode】313. Super Ugly Number
题目如下: 解题思路:总结一下这么几点,一出一进,优先级队列排序,保证每次输出的都是当前的最小值.解法大致如图: 代码如下: #include<map> #include<queue ...
- 263. Ugly Number + 264. Ugly Number II + 313. Super Ugly Number
▶ 三个与丑数相关的问题 ▶ 第 263题,判定一个数字是否是丑数,即其素因子是否仅由 2,3,5 构成. ● 常规消除判别,4 ms class Solution { public: bool is ...
随机推荐
- String.Split()函数 非原创
我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),其中用到了String.SPl ...
- DjangoForm表单组件
Form组件的介绍: 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验 ...
- 这 6 个 Spring Boot 项目够经典
不得不佩服 SpringBoot 的生态如此强大,今天我给大家推荐几款 Gitee 上优秀的后台管理系统,小伙伴们再也不用从头到尾撸一个项目了. SmartAdmin 我们开源一套漂亮的代码和一套整洁 ...
- django 不使用序列化器时进行查询结果序列化
在app01views中添加 class User1(View): def post(self,request): user=User.objects.all() list=[] for i in u ...
- 第11.2节 Python 正则表达式支持函数概览
为了大家熟悉re模块匹配文本的处理,本节将概要介绍与此处理有关的几个主要函数,提供了如下主要函数: 以上函数中的部分的三个重要参数说明如下: pattern都是代表匹配规则的模式字符串,string代 ...
- 第十八章、QListView/Model开发
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView理论上可以和所有QAbstractItemModel派生的类如QStri ...
- 小齐读者拿到快手、百度、网易等 offer 的独门秘籍!
小齐说: 这篇文章来自读者冰红茶,他刚结束了秋招,拿了很多家 offer. 和他聊完之后,我觉得他的备考思路也完全适用于美国的面试,只是分值要调整一下,但是具体每一块的内容,地球村通用.所以分享给大家 ...
- Scrum冲刺_Day06
一.团队展示: 1.项目:light_note备忘录 2.队名:删库跑路队 3.团队成员 队员(不分先后) 项目角色 黄敦鸿 后端工程师.测试 黄华 后端工程师.测试 黄骏鹏 后端工程师.测试 黄源钦 ...
- 算法——寻找第K个最大的数
在未排序的数组中找到第 k 个最大的元素. 链接: leetcode. 解题思路:通过快速排序的思想方法,每次随机获取指定范围内一个树的排序位置,然后根据这个位置,再重新指定范围,直到这个位置索引满足 ...
- 时间转成x时x分x秒的封装(简易版)
function createTime(t) { let timer; if (t <= 0 || !t || t < 60 || typeof(t)!=='number') timer ...