[路飞]_LeetCode面试题 17.09. 第 k 个数

121 阅读1分钟

题目描述

有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。

示例 1:

输入: k = 5

输出: 9

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/ge… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解思路

此题和题264丑数 II基本一致,可参考[路飞]_LeetCode题264丑数 II

题解代码

 * @param {number} k
 * @return {number}
 */
var getKthMagicNumber = function(k) {
    let p3=p5=p7=1;
    let ans = new Array(k+1);
    ans[1] = 1;
    for(i=2;i<=k;i++){
        let m3 = ans[p3]*3;
        let m5 = ans[p5]*5;
        let m7 = ans[p7]*7;
        let min = Math.min(m3,m5,m7);
        if(min === m3) p3++;
        if(min === m5) p5++;
        if(min === m7) p7++;
        ans[i] = min;
    }
    return ans[k];
};