• 魔法师

    力扣 LeetCode

    图片

    3718. 缺失的最小倍数 - 力扣(LeetCode)

    3718. 缺失的最小倍数 - 给你一个整数数组 nums 和一个整数 k,请返回从 nums 中缺失的、最小的正整数 k 的倍数。

    倍数 指能被 k 整除的任意正整数。

     

    示例 1:

    输入: nums = [8,2,3,4,6], k = 2

    输出: 10

    解释:

    当 k = 2 时,其倍数为 2、4、6、8、10、12……,其中在 nums 中缺失的最小倍数是 10。

    示例 2:

    输入: nums = [1,4,7,10,15], k = 5

    输出: 5

    解释:

    当...

    思路

    直接模拟。

    代码```
    class Solution {
    public int missingMultiple(int[] nums, int k) {
    int[] cnt = new int[101];
    for (int num : nums) {
    cnt[num]++;
    }
    int m = k;
    while (m <= 100 && cnt[m] > 0) {
    m += k;
    }
    return m;
    }
    }

    主楼
  • CPython

    早上好佬友,今天来早了```
    class Solution:
    def missingMultiple(self, nums: List[int], k: int) -> int:
    nums = set(nums)
    x = k
    while k in nums:
    k += x
    return k

    #1
  • SomeBottle

    规模不大,标记出现的数字然后枚举即可。```
    class Solution {
    public:
    int missingMultiple(vector<int>& nums, int k) {
    bool nMap[101];
    memset(nMap, 0, sizeof(nMap));
    for (int num : nums) {
    // 标记已经出现的数字
    nMap[num] = true;
    }
    int f = 1;
    while (f k <= 100 && nMap[f k]) {
    f++;
    }
    return f * k;
    }
    };

    #2
  • Infinity4B

    算术评级 2 第 472 场周赛 Q1 难度分 1228

    简简单单```
    class Solution:
    def missingMultiple(self, nums: List[int], k: int) -> int:
    nums = set(nums)
    for i in range(1,100//k+2):
    if i*k not in nums:
    return i*k

    #3
  • vector2
    class Solution:
        def missingMultiple(self, nums: List[int], k: int) -> int:
            n = max(nums) // k
            for i in range(1, n + 1):
                if k * i not in nums:
                    return k * i
            return k * (n + 1)
    #4

发表回复

登录后回复