LeetCode 313. Super Ugly Number

题目

寻找第n个丑数。
首先我们维护一个丑数的数组,所有的丑数必然是前面的某个丑数乘以primes数组里的某个数字得来。

所以我们在维护一个primes数组对应的最小丑数数组下标pos,primes[i]*pos[i] 就是未来的某个丑数,按照从小到大一个一个计算。

class Solution {
public:
    int pos[105];
    int ugly[1000005];
    int nthSuperUglyNumber(int n, vector& primes) {
        
        if(primes.size()==0)
            return 1;
        
        for(int i=0;iprimes[j]*ugly[pos[j]])
                {
                    m=primes[j]*ugly[pos[j]];
                }
            }
            
            for(int j=0;j

你可能感兴趣的:(LeetCode 313. Super Ugly Number)