313. Super Ugly Number

来源:互联网 发布:tensorflow下载地址 编辑:程序博客网 时间:2024/06/16 16:00
class Solution {private:    struct A{        int a;        int b;    };    class compareA{    public:bool operator()(A item1,A item2)        {            return item1.a<item2.a;        }    };public:    int nthSuperUglyNumber(int n, vector<int>& primes) {        if(n==1)            return 1;        vector<int> primesindex(primes.size(),0);        vector<A> generate(primes.size());        vector<int> nums(n,1);        for(int i=1;i<n;i++)        {            for(int j=0;j<primes.size();j++)            {                A temp;                temp.a=nums[primesindex[j]]*primes[j];                temp.b=j;                generate[j]=temp;            }            sort(generate.begin(),generate.end(),compareA());            int k=1;            while(generate[k].a==generate[0].a)            {                primesindex[generate[k].b]++;                k++;            }            nums[i]=generate[0].a;            primesindex[generate[0].b]++;        }        return nums[n-1];    }};
1 0