代码演示:
package swordfingeroffer
;
public class InterviewQuestion49 {
private boolean isUgly(int number
) {
while (0 == number
% 2) {
number
/= 2;
}
while (0 == number
% 3) {
number
/= 3;
}
while (0 == number
% 5) {
number
/= 5;
}
return 1 == number
? true : false;
}
public int getUglyNumber(int index
) {
if (index
<= 0) {
throw new RuntimeException("参数不能小于或者等于0!");
}
int number
= 0;
int uglyIndex
= 0;
while (uglyIndex
< index
) {
number
++;
if (isUgly(number
)) {
uglyIndex
++;
}
}
return number
;
}
public int getUglyNumber2(int index
) {
if (index
<= 0) {
throw new RuntimeException("参数不能小于或者等于0!");
}
int[] result
= new int[index
];
int t2
= 0;
int t3
= 0;
int t5
= 0;
result
[0] = 1;
for (int i
= 1; i
< index
; i
++) {
result
[i
] = Math
.min(Math
.min(result
[t2
] * 2,result
[t3
] * 3), result
[t5
] * 5);
if (result
[i
] == result
[t2
] * 2) {
t2
++;
}
if (result
[i
] == result
[t3
] * 3) {
t3
++;
}
if (result
[i
] == result
[t5
] * 5) {
t5
++;
}
}
return result
[index
- 1];
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-56939.html