1. 题目

编写一段程序来查找第 n 个超级丑数。

超级丑数是指其所有质因数都是长度为 k 的质数列表 primes 中的正整数。

示例:
输入: n = 12, primes = [2,7,13,19]
输出: 32
解释: 给定长度为 4 的质数列表 primes = [2,7,13,19],
前 12 个超级丑数序列为:[1,2,4,7,8,13,14,16,19,26,28,32] 。说明:
1 是任何给定 primes 的超级丑数。给定 primes 中的数字以升序排列。
0 < k ≤ 100, 0 < n ≤ 106, 0 < primes[i] < 1000 。
第 n 个超级丑数确保在 32 位有符整数范围内。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/super-ugly-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 类似题目:
    LeetCode 263. 丑数 && 264. 丑数 II(DP)(264题的升级版)
    LeetCode 1201. 丑数 III(最小公倍数+二分查找)
    程序员面试金典 - 面试题 17.09. 第 k 个数(set优先队列/DP)

class Solution {public:int nthSuperUglyNumber(int n, vector<int>& primes) {int i, j, k = primes.size();vector<long> idx(k,1);vector<long long> dp(n+1, LONG_LONG_MAX);dp[1] = 1;for(i = 2; i <= n; ++i){    for(j = 0; j < k; ++j)if(dp[idx[j]]*primes[j] < dp[i])dp[i] = dp[idx[j]]*primes[j];for(j = 0; j < k; ++j)if(dp[i] == dp[idx[j]]*primes[j])idx[j]++;}return dp[n];}
};

108 ms 9.4 MB

LeetCode 313. 超级丑数(动态规划)相关推荐

  1. Leetcode 313. 超级丑数 解题思路及C++实现

    解题思路: 与Leetcode 264. 丑数 II的解题思路一样,均使用最小堆来存储丑数,第i次更新最小堆时,得到第i大的丑数. 可结合Leetcode 264. 丑数 II的解题思路理解:http ...

  2. 【数学】丑数II 和 超级丑数

    题目描述 给你一个整数 n ,请你找出并返回第 n 个 丑数 . 丑数 就是只包含质因数 2.3 和/或 5 的正整数. 提示:1也是丑数 示例 1: 输入:n = 9 输出:10 解释:[1, 2, ...

  3. 从C语言的角度重构数据结构系列(八)-数据结构堆知识超级丑数

    前言 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 https://blog.csdn.net/wenyusuran/category_2239261.html ...

  4. php实现丑数,曾经绊倒我的 “超级丑数”

    点击 蓝色字体 关注,欢迎星标此号 既然来了,何不认真读完此文呢?每天多花20分钟,做一些别人不愿做的事,坚持下去,会有一个结果的.废话少说,通过此文,你将会学到如下知识: 学会列表和排序很难求解的场 ...

  5. 【LeetCode】263.丑数 264. 丑数 II

    I. 263. 丑数(是否为丑数) 一.题目描述 编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 ...

  6. [剑指offer]面试题第[49]题[Leetcode][第264题][JAVA][丑数][动态规划][堆]

    [问题描述][中等] [解答思路] 1. 动态规划 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public int nthUglyNumber(int n) {int ...

  7. leetcode算法题--丑数 II★

    原题链接:https://leetcode-cn.com/problems/ugly-number-ii/ 三指针 int nthUglyNumber(int n) {int a = 0, b = 0 ...

  8. LeetCode 1201. 丑数 III(最小公倍数+二分查找)

    1. 题目 请你帮忙设计一个程序,用来找出第 n 个丑数. 丑数是可以被 a 或 b 或 c 整除的 正整数. 示例 1: 输入:n = 3, a = 2, b = 3, c = 5 输出:4 解释: ...

  9. LeetCode 263. 丑数 264. 丑数 II(DP)

    文章目录 1. LeetCode 263. 丑数 解题 2. LeetCode 264. 丑数 II DP解题 1. LeetCode 263. 丑数 编写一个程序判断给定的数是否为丑数. 丑数就是只 ...

最新文章

  1. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验
  2. SAP PM 入门系列25 - 计量点
  3. Android移动开发之【Android实战项目】DAY4-项目发布到真机
  4. 判断闰年 及其某天为这一年的多少天
  5. shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
  6. 西北民族大学c语言程序设计复试科目,2016年西北民族大学中国民族信息技术研究院962C语言程序设计复试笔试仿真模拟题...
  7. 【Elasticsearch】es 快照 snapshot 操作实战
  8. 【新功能发布】事件监控升级-支持自动化处理云产品异常
  9. STM32F429HAL库UART学习笔记
  10. 经典算法——五大常用算法
  11. python实现栅栏密码加解密
  12. 大数据有十大应用领域,看看你用到了哪个?
  13. 2018年个人学习计划总结
  14. ios 视频选择封面功能
  15. 计算机与宽带路由器的连接过程,路由器怎么插线和宽带图解 路由器设置步骤图解...
  16. 学计算机会不会做ppt,学习计算机心得与体会.ppt
  17. pytorch-gradual-warmup-lr安装
  18. 新手如何选择 视频配音软件(文字转语音)
  19. 测试藏宝图汉化版大图
  20. No7.基本数据类型的包装类

热门文章

  1. 挂载nfs文件系统_综合架构-day38-NFS服务补充
  2. 用Visual Studio 2019连接 WSL来编译调试C/C++项目
  3. python 经典类和新式类
  4. 浅析C#中构建多线程应用程序
  5. coreData mapView #include
  6. win2008启动计算机应用配置,[计算机软件及应用]WIN2008_NAP服务器配置详解.doc
  7. c语言中怎么 写子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  8. 转:跨dll操作fopen的返回值导致出错
  9. Python 37 进程池与线程池 、 协程
  10. 超乎想象,数据揭示自学成才的码农为何备受青睐