3718 - Smallest Missing Multiple of K (Easy)
Problem Link
https://leetcode.com/problems/smallest-missing-multiple-of-k/
Problem Statement
Given an integer array nums and an integer k, return the smallest positive multiple of k that is missing from nums.
A multiple of k is any positive integer divisible by k.
Example 1:
Input: nums = [8,2,3,4,6], k = 2
Output: 10
Explanation:
The multiples of k = 2 are 2, 4, 6, 8, 10, 12... and the smallest multiple missing from nums is 10.
Example 2:
Input: nums = [1,4,7,10,15], k = 5
Output: 5
Explanation:
The multiples of k = 5 are 5, 10, 15, 20... and the smallest multiple missing from nums is 5.
Constraints:
1 <= nums.length <= 1001 <= nums[i] <= 1001 <= k <= 100
Approach 1: Enumeration
Convert into a set to allow fast membership checks. Starting from k, check each positive multiple of in increasing order. If the current multiple exists in the set, add k and continue, otherwise return it. Because the multiples are checked from smallest to largest, the first missing one is guaranteed to be the answer.
Building the set takes time and space. At most multiples need to be checked, so the overall time complexity is , and the space complexity is .
class Solution:
def missingMultiple(self, nums: List[int], k: int) -> int:
nums = {*nums}
res = k
while True:
if res not in nums: break
res += k
return res3702 - Longest Subsequence With Non-Zero Bitwise XOR
Find the longest subsequence with nonzero XOR by checking the full-array XOR and whether removing one element can make it nonzero.
3736 - Minimum Moves to Equal Array Elements III
Minimize unit increments to equalize an array by summing each element's distance to the current maximum.