思路:
- 丑数是另一个丑数乘以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];
}
}
京公网安备 11010502036488号