| 12345678910111213141516171819202122 | 
							- func nthSuperUglyNumber(n int, primes []int) int {
 
- 	ugly := []int{1}
 
- 	k := len(primes)
 
- 	index, product := make([]int, k), make([]int, k)
 
- 	copy(product, primes)
 
- 	for i := 1; i < n; i++ {
 
- 		idx, min := 0, product[0]
 
- 		for j := 0; j < k; j++ {
 
- 			if product[j] == ugly[i-1] {
 
- 				index[j]++
 
- 				product[j] = ugly[index[j]] * primes[j]
 
- 			}
 
- 			if product[j] < min {
 
- 				idx, min = j, product[j]
 
- 			}
 
- 		}
 
- 		ugly = append(ugly, min)
 
- 		index[idx]++
 
- 		product[idx] = ugly[index[idx]] * primes[idx]
 
- 	}
 
- 	return ugly[n-1]
 
- }
 
 
  |