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
解释:
当 k = 5 时,其倍数为 5、10、15、20……,其中在 nums 中缺失的最小倍数是 5。
提示:
1 <= nums.length <= 1001 <= nums[i] <= 1001 <= k <= 100
解法
方法一:哈希表 + 枚举
我们先用一个哈希表 \(\textit{s}\) 存储数组 \(\textit{nums}\) 中出现的数字。然后从 \(k\) 的第一个正倍数 \(k \times 1\) 开始,依次枚举每个正倍数,直到找到第一个不在哈希表 \(\textit{s}\) 中出现的倍数,即为答案。
时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)。其中 \(n\) 为数组 \(\textit{nums}\) 的长度。
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 | |