力扣做题 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] };