题解 | #左旋转字符串#
丑数
http://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b
// 求第i个丑数,就是找前i-2个丑数乘以2,3,5里大于第i-1个丑数的最小值
function GetUglyNumber_Solution(index) {
if (index <= 0) {
return 0;
}
let arr = [1];
let i2=0,i3=0,i5=0
let cur = 0;
while (arr.length < index) {
arr.push(Math.min(arr[i2] * 2, arr[i3] * 3, arr[i5] * 5));//尾部添加丑数
const current = arr[arr.length - 1];
while (arr[i2] * 2 <= current) {
i2++; // 更新i2索引(丑数的性质)
}
while (arr[i3] * 3 <= current) {
i3++;// 更新i3索引
}
while (arr[i5] * 5 <= current) {
i5++;// 更新i5索引
}
}
return arr[index - 1];
}
module.exports = {
GetUglyNumber_Solution : GetUglyNumber_Solution
};