| 12345678910111213141516171819202122232425262728 | 
							- func nthUglyNumber(n int) int {
 
- 	nums := []int{1}
 
- 	next2, next3, next5 := 2, 3, 5
 
- 	for i, i2, i3, i5 := 1, 0, 0, 0; i < n; i++ {
 
- 		next := next2
 
- 		if next3 < next {
 
- 			next = next3
 
- 		}
 
- 		if next5 < next {
 
- 			next = next5
 
- 		}
 
- 		nums = append(nums, next)
 
- 		if next == next2 {
 
- 			i2++
 
- 			next2 = nums[i2] * 2
 
- 		}
 
- 		if next == next3 {
 
- 			i3++
 
- 			next3 = nums[i3] * 3
 
- 		}
 
- 		if next == next5 {
 
- 			i5++
 
- 			next5 = nums[i5] * 5
 
- 		}
 
- 	}
 
- 	return nums[n-1]
 
- }
 
 
  |