面试题 17.09. 第 k 个数

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

示例 1:

输入: k = 5

输出: 9

class Solution {
    public int getKthMagicNumber(int k) {
        int[] res = new int[k];
        res[0] = 1;
        int point3 = 0;
        int point5 = 0;
        int point7 = 0;
        for(int i = 1; i < k; i++) {
            int count = Math.min(Math.min(res[point3] * 3, res[point5] * 5), res[point7] * 7);
            if(count % 3 == 0) {
                point3++;
            }
            if(count % 5 == 0) {
                point5++;
            }
            if(count % 7 == 0) {
                point7++;
            }
            res[i] = count;
        }
        return res[k - 1];
    }
    
}

  

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

猜你喜欢

转载自www.cnblogs.com/PHUN19/p/13399692.html