c_cpp super_ugly_leetcode.cpp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp super_ugly_leetcode.cpp相关的知识,希望对你有一定的参考价值。

#define i_max std::numeric_limits<int>::max()
typedef pair<int, pair<long long int , int> > pip;
class Solution {
public:
    int nthSuperUglyNumber(int n, vector<int>& primes) {
        vector< pip > prime_x;
        vector<int> ugly_nums;
        if(n==1) return 1;
        ugly_nums.push_back(1);
        for(int i=0;i<primes.size();i++){
            prime_x.push_back(make_pair(primes[i],make_pair(primes[i],0)));
        }
        int next_ugly=1;
        for(int j=1;j<n;j++){
            int min_index=-1;int min_val=i_max;
            for(int k=0;k<primes.size();k++){
                if(prime_x[k].second.first<min_val)
                min_val=prime_x[k].second.first,min_index=k;
            }
            next_ugly=min_val;
            if(next_ugly!=ugly_nums[ugly_nums.size()-1])
            {
                   
                ugly_nums.push_back(next_ugly);
            }
            else{
                j--;
            }
            prime_x[min_index].second.second++; prime_x[min_index].second.first=ugly_nums[prime_x[min_index].second.second]*prime_x[min_index].first;
        }
        return next_ugly;    
    }
};

以上是关于c_cpp super_ugly_leetcode.cpp的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 200.岛屿数量

c_cpp 127.单词阶梯

c_cpp MOFSET

c_cpp MOFSET

c_cpp 31.下一个排列

c_cpp string→char *