力扣做题 09. 第 k 个数

这题主要难度还是理解题意,找到规律,以及实践
 

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

示例 1:

输入: k = 5

输出: 9

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

/**
 * @param {number} k
 * @return {number}
 */
var getKthMagicNumber = function(k) {
    //这题主要难度还是理解题意,找到规律
    //3个指针,p1,p2,p3,不停的比较,谁最小指针就右移
    // f(n){
    //     Math.min(s(p1)*3,s(p2)*5,s(p3)*7) 
    // }
    const arr=[1]
    let p1=0,p2=0,p3=0;

    for(let i=0;i<k-1;i++){
        let num1=arr[p1]*3
        let num2=arr[p2]*5
        let num3=arr[p3]*7
        let min=Math.min(num1,num2,num3)
       if(min===num1){
            p1++
       }
       if(min===num2){
            p2++
       }
       if(min===num3){
           p3++
       }
       arr.push(min)
    }
       console.log(arr)
    return arr[k-1]
};

 

posted @ 2022-09-28 13:23  无工时代  阅读(27)  评论(0编辑  收藏  举报