LeetCode 523 Continuous Subarray Sum - Implementation

The approach

Track prefix sum remainders. Return true when same remainder appears with gap at least 2.

function checkSubarraySum(nums, k): seen = {0: -1} prefixSum = 0 for i in range(len(nums)): prefixSum += nums[i] remainder = prefixSum % k if remainder in seen: if i - seen[remainder] >= 2: return true else: seen[remainder] = i return false

O(n)O(n) time, O(min(n,k))O(\min(n, k)) space.