classSolution{public:boolcheckSubarraySum(vector<int>&nums,intk){unordered_map<int,int>prefixToIndex{{0,-1}};intprefix=0;for(inti=0;i<nums.size();++i){prefix+=nums[i];if(k!=0)prefix%=k;if(prefixToIndex.count(prefix)){if(i-prefixToIndex[prefix]>1)returntrue;}else{// Only add if absent, because the previous index is betterprefixToIndex[prefix]=i;}}returnfalse;}};
classSolution{publicbooleancheckSubarraySum(int[]nums,intk){intprefix=0;Map<Integer,Integer>prefixToIndex=newHashMap<>();prefixToIndex.put(0,-1);for(inti=0;i<nums.length;++i){prefix+=nums[i];if(k!=0)prefix%=k;if(prefixToIndex.containsKey(prefix)){if(i-prefixToIndex.get(prefix)>1)returntrue;}else{// Only add if absent, because the previous index is betterprefixToIndex.put(prefix,i);}}returnfalse;}}