• 313 Super Ugly Number 超级丑数


    编写一段程序来寻找第 n 个超级丑数。
    超级丑数是指其所有质因数都在长度为k的质数列表primes中的正整数。例如,[1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32],是给定长度为 4 的质数列表primes = [2, 7, 13, 19]的前 12 个超级丑数。
    注意:
    (1) 1是任何给定的primes的超级丑数。
    (2) 给定primes中的数字以升序排列。
    (3) 0 < k ≤ 100, 0 < n ≤ 106, 0 < primes[i] < 1000 。
    (4) 第n个超级丑数可以认为在32位有符整数的表示范围内。

    详见:https://leetcode.com/problems/super-ugly-number/description/

    C++:

    class Solution {
    public:
        int nthSuperUglyNumber(int n, vector<int>& primes) {
            vector<int> res(1,1),idx(primes.size(),0);
            while(res.size()<n)
            {
                vector<int> tmp;
                int mn=INT_MAX;
                for(int i=0;i<primes.size();++i)
                {
                    tmp.push_back(res[idx[i]]*primes[i]);
                }
                for(int i=0;i<primes.size();++i)
                {
                    mn=min(mn,tmp[i]);
                }
                for(int i=0;i<primes.size();++i)
                {
                    if(mn==tmp[i])
                    {
                        ++idx[i];
                    }
                }
                res.push_back(mn);
            }
            return res.back();
        }
    };
    

     参考:https://www.cnblogs.com/grandyang/p/5144918.html

  • 相关阅读:
    反向迭代器实现字符串逆序
    排序更新
    快速排序的实现方法,调用sort函数
    第k个素数
    ACM Online Judge
    Hadoop系列(一)开篇简介
    Hadoop系列(番外) hadoop3.1.2的完全分布式部署
    synchronized关键字
    Oracle的运行
    在Oracle下创建数据库,连接数据库
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8831281.html
Copyright © 2020-2023  润新知