[LeetCode]313. Super Ugly Number超级丑数,丑数系列看这一道就行了
2024-09-06 02:19:52
丑数系列的题看这一道就可以了
/*
和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];
}
最新文章
- 安卓端360度全景图的html5实现
- Java 隐藏和覆盖
- oracle常用操作指令
- [OpenGL] 1、环境搭建及最小系统
- 2012 #3 Arcane Numbers
- Nexus中自定义私服,每个项目都用独立的工厂,仓库
- zencart技术联盟交流群
- bzoj 1187: [HNOI2007]神奇游乐园 插头dp
- WCF与Web API 区别
- Java 代码性能优化
- [译]Selenium Python文档:二、初步开始
- QT制作一个图片播放器
- 房上的猫:while循环与do-while循环,debug的调试运用
- nginx1.14.0日志打印
- UBUNTU安装 Rabbitvsc可视化版本控制客户端软件
- Swift重写UIButton的图片和标题的位置
- Manacher 计算最长回文串
- Django之modelform修改数据库
- 一、用Delphi10.3模拟读取百度网页,并读取相关头部信息
- Delphi 模式窗体返回值ModalResult的使用方法及注意事项
热门文章
- Beta冲刺随笔——Day_One
- SpringCloud 源码系列(2)—— 注册中心 Eureka(中)
- 前端vue小知识点
- Django匆匆一眼却解答了多年疑惑
- .NET Core/.NET 5.0 析构函数依然有效?
- 第5.2节 Python的函数参数收集
- 老猿学5G随笔:RAN、RAT以及anchor移动性锚点的概念
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍
- PyQt(Python+Qt)学习随笔:QScrollArea的alignment属性不起作用的原因
- 问题:PyCharm的几种调试方法的区别