思路:
- 丑数是另一个丑数乘以2、3或5的结果;
- 如何确保数组里面的丑数是排好序的。
public class Solution { public static int GetUglyNumber_Solution(int index) { int[] nums = new int[11000]; nums[1] = 1; int ans = 1; int a = 1, b = 1, c = 1; while (ans < index) { nums[++ans] = Math.min(Math.min(nums[a] * 2, nums[b] * 3), nums[c] * 5); if (nums[a] * 2 == nums[ans]) { a++; } if (nums[b] * 3 == nums[ans]) { b++; } if (nums[c] * 5 == nums[ans]) { c++; } } return nums[index]; } }