博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode Super Ugly Number
阅读量:5244 次
发布时间:2019-06-14

本文共 1548 字,大约阅读时间需要 5 分钟。

题目连接

   

Super Ugly Number

Description

Write a program to find the $n^{th}$ super ugly number.

Super ugly numbers are positive numbers whose all prime factors are in the given prime list primes 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 given primes = [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 \leq 100, 0 < n \leq 10^6, 0 < primes[i] < 1000.$

优先队列。。

 

class Solution {private:    typedef long long ll;    struct Node {        ll val;        int idx, prim;        Node(ll _v_ = 0, int _i_ = 0, int _p_ = 0) :val(_v_), idx(_i_), prim(_p_) {}        inline bool operator<(const Node &x) const {            return val > x.val;        }    };    typedef priority_queue
PQ;public: int nthSuperUglyNumber(int n, vector
& primes) { PQ q; vector
ans(n + 10); ans[0] = 1; int len = primes.size(); for (int i = 0; i < len; i++) { q.push(Node(primes[i], 0, primes[i])); } for (int i = 1; i < n; i++) { Node ret = q.top(); ans[i] = ret.val; while (true) { ret = q.top(); q.pop(); ret.val = ans[++ret.idx] * ret.prim; q.push(ret); if (q.top().val != ans[i]) break; }; } return (int)ans[n - 1]; }};

 

转载于:https://www.cnblogs.com/GadyPu/p/5017788.html

你可能感兴趣的文章
android:scaleType属性
查看>>
SuperEPC
查看>>
CentOS7安装iptables防火墙
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
第三次作业
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
cocos2d-x中CCLabelAtlas的小图片拼接
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Ubuntu 安装之python开发
查看>>
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>