1public boolean checkSubarraySum(int[] nums, int k) {
2 Map<Integer, Integer> map = new HashMap<>();
3 map.put(0, -1);
4 int sum = 0;
5
6 for (int i = 0; i < nums.length; i++) {
7 sum += nums[i];
8 int remainder = ((sum % k) + k) % k;
9 if (map.containsKey(remainder)) {
10 if (i - map.get(remainder) >= 2) {
11 return true;
12 }
13 } else {
14 map.put(remainder, i);
15 }
16 }
17
18 return false;
19}