LeetCode 523. Continuous Subarray Sum考点难度ArrayMedium题目Given an integer array nums and an integer k, return true if nums has a good subarray or false otherwise.A good subarray is a subarray where:its length is at least two, andthe sum of the elements of the subarray is a multiple of k.Note that:A subarray is a contiguous part of the array.An integer x is a multiple of k if there exists an integer n such that x n * k. 0 is always a multiple of k.思路If prefixSum[i] mod k prefixSum[j] mod kThen prefixSum[i] - prefixSum[j] is divisible by k答案classSolution{publicbooleancheckSubarraySum(int[]nums,intk){MapInteger,IntegermapnewHashMap(){{put(0,-1);}};;intrunningSum0;for(inti0;inums.length;i){runningSumnums[i];if(k!0)runningSum%k;Integerprevmap.get(runningSum);if(prev!null){if(i-prev1)returntrue;}elsemap.put(runningSum,i);}returnfalse;}}
LeetCode知识点总结 - 523
LeetCode 523. Continuous Subarray Sum考点难度ArrayMedium题目Given an integer array nums and an integer k, return true if nums has a good subarray or false otherwise.A good subarray is a subarray where:its length is at least two, andthe sum of the elements of the subarray is a multiple of k.Note that:A subarray is a contiguous part of the array.An integer x is a multiple of k if there exists an integer n such that x n * k. 0 is always a multiple of k.思路If prefixSum[i] mod k prefixSum[j] mod kThen prefixSum[i] - prefixSum[j] is divisible by k答案classSolution{publicbooleancheckSubarraySum(int[]nums,intk){MapInteger,IntegermapnewHashMap(){{put(0,-1);}};;intrunningSum0;for(inti0;inums.length;i){runningSumnums[i];if(k!0)runningSum%k;Integerprevmap.get(runningSum);if(prev!null){if(i-prev1)returntrue;}elsemap.put(runningSum,i);}returnfalse;}}