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 *