class Solution {
public:
int GetUglyNumber_Solution(int index) {
if(index <= 0) return 0;
int p2 = 0, p3 = 0, p5 = 0; //初始化三个指向三个潜在成为最小丑数的位置
vector<int> res(index, 0);
res[0] = 1;
for(int i = 1; i < index; i++) {
res[i] = min(res[p2] * 2, min(res[p3] * 3, res[p5] * 5));
//为了防止重复需要三个if都能够走到
if(res[i] == res[p2] * 2) p2++;
if(res[i] == res[p3] * 3) p3++;
if(res[i] == res[p5] * 5) p5++;
}
return res[index - 1];
}
};
剑指offer49丑数
最新推荐文章于 2022-03-07 14:40:48 发布