3837. Delayed Count of Equal Elements π
Description
You are given an integer array nums of length n and an integer k.
For each index i, define the delayed count as the number of indices j such that:
i + k < j <= n - 1, andnums[j] == nums[i]
Return an array ans where ans[i] is the delayed count of index i.
Β
Example 1:
Input: nums = [1,2,1,1], k = 1
Output: [2,0,0,0]
Explanation:
i | nums[i] | possible j | nums[j] | satisfyingnums[j] == nums[i] | ans[i] |
|---|---|---|---|---|---|
| 0 | 1 | [2, 3] | [1, 1] | [2, 3] | 2 |
| 1 | 2 | [3] | [1] | [] | 0 |
| 2 | 1 | [] | [] | [] | 0 |
| 3 | 1 | [] | [] | [] | 0 |
Thus, ans = [2, 0, 0, 0]βββββββ.
Example 2:
Input: nums = [3,1,3,1], k = 0
Output: [1,1,0,0]
Explanation:
i | nums[i] | possible j | nums[j] | satisfyingnums[j] == nums[i] | ans[i] |
|---|---|---|---|---|---|
| 0 | 3 | [1, 2, 3] | [1, 3, 1] | [2] | 1 |
| 1 | 1 | [2, 3] | [3, 1] | [3] | 1 |
| 2 | 3 | [3] | [1] | [] | 0 |
| 3 | 1 | [] | [] | [] | 0 |
Thus, ans = [1, 1, 0, 0]βββββββ.
Β
Constraints:
1 <= n == nums.length <= 1051 <= nums[i] <= 1050 <= k <= n - 1
Solutions
Solution 1: Hash Table + Reverse Enumeration
We can use a hash table \(\textit{cnt}\) to record the number of occurrences of each number within the index range \((i + k, n - 1]\). We enumerate index \(i\) in reverse order starting from index \(n - k - 2\). During the enumeration, we first add the number at index \(i + k + 1\) to the hash table \(\textit{cnt}\), then assign the value of \(\textit{cnt}[nums[i]]\) to the answer array \(\textit{ans}[i]\).
The time complexity is \(O(n)\) and the space complexity is \(O(n)\), where \(n\) is the length of the array \(\textit{nums}\).
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |