Smallest Missing Non-negative Integer After Operations

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
class Solution:
    def findSmallestInteger(self, nums: List[int], value: int) -> int:        
        residues = []
        for n in nums:
            residue = n % value
            residues.append(residue)

        m = Counter(residues)

        for i in range(len(nums)):
            modulo_result = i % value

            if m[modulo_result] == 0:
                return i

            m[modulo_result] -= 1

        return len(nums)