ContinuousSubarraySum { public boolean checkSubarraySum(int[] nums, int k) { HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(){ {put(0, -1);} }; int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]; int mod = k == 0 ? sum : sum % k; if (map.containsKey(mod)) { int t = i - map.get(mod); if (t > 1) return true; } else { map.put(mod, i); } } return false; }  boolean checkSubarraySum(int[] nums, int k);  }
@Test(dataProvider = "subarraySum") public void test(int[] array, int sum, boolean expected) { Assert.assertEquals(new ContinuousSubarraySum().checkSubarraySum(array, sum), expected); }