974. Subarray Sums Divisible by K
Medium
Given an integer array nums
and an integer k
, return the number of non-empty subarrays that have a sum divisible by k
.
A subarray is a contiguous part of an array.
Example 1:
- Input: nums = [4,5,0,-2,-3,1], k = 5
- Output: 7
- Explanation: There are 7 subarrays with a sum divisible by k = 5:\ [4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
Example 2:
- Input: nums = [5], k = 9
- Output: 0
Constraints:
- 4
-104 <= nums[i] <= 104
2 <= k <= 104
Constraints:
class Solution {
/**
* @param Integer[] $nums
* @param Integer $k
* @return Integer
*/
function subarraysDivByK($nums, $k) {
$n = count($nums);
$prefixMod = 0;
$result = 0;
$modGroups = array_fill(0, $k, 0);
$modGroups[0] = 1;
foreach ($nums as $num) {
$prefixMod = ($prefixMod + $num % $k + $k) % $k;
$result += $modGroups[$prefixMod];
$modGroups[$prefixMod]++;
}
return $result;
}
}
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!
If you want more helpful content like this, feel free to follow me: