cswork / libraryOpen practice workspace

Coding questions · ByteDance

Count Special Subarrays by Modular Frequency

This question evaluates the ability to apply modular arithmetic, frequency tracking, and prefix-count reasoning to efficiently count subarrays that satisfy a congruence condition, testing algorithmic problem-solving and scalable complexity management.

You are given an integer array nums, and two integers modulo and target, where 0 <= target < modulo.

Call an index i special if nums[i] % modulo == target.

A contiguous subarray nums[l..r] is considered valid if the number of special indices inside the subarray has remainder target when divided by modulo.

Return the number of valid subarrays.

Example

nums = [3, 1, 9, 6], modulo = 3, target = 0

Special indices are those whose values are divisible by 3: indices 0, 2, and 3.

Valid subarrays are those where the count of special elements is congruent to 0 mod 3.

Requirements

  • Design an efficient algorithm.
  • The array may be large, so an O(n^2) enumeration of all subarrays is not acceptable.
  • Return the count as a 64-bit integer.

Count Special Subarrays by Modular Frequency

Constraints

  • 0 <= len(nums) <= 200000
  • 1 <= modulo <= 1000000000
  • 0 <= target < modulo
  • -1000000000 <= nums[i] <= 1000000000
  • Use the mathematical non-negative remainder for modulo comparisons

Hints

  1. Convert the array into a sequence of 0s and 1s, where 1 means the index is special.
  2. For each prefix count modulo modulo, count how many previous prefix remainders would make the subarray's special count congruent to target.