第k个数
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。
/**
* 三指针方式
*/
const getKthMagicNumber = (k = 5) => {
const dp = new Array(k + 1).fill(0);
dp[1] = 1;
let p3 = 1,
p5 = 1,
p7 = 1;
for (let i = 2; i <= k; i++) {
const num3 = dp[p3] * 3,
num5 = dp[p5] * 5,
num7 = dp[p7] * 7;
dp[i] = Math.min(Math.min(num3, num5), num7);
if (dp[i] === num3) {
p3++;
}
if (dp[i] === num5) {
p5++;
}
if (dp[i] === num7) {
p7++;
}
}
return dp[k];
};
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号