思路:

  1. 丑数是另一个丑数乘以2、3或5的结果;
  2. 如何确保数组里面的丑数是排好序的。
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];
    }
}