370. Range Addition
Description
You are given an integer length
and an array updates
where updates[i] = [startIdx<sub>i</sub>, endIdx<sub>i</sub>, inc<sub>i</sub>]
.
You have an array arr
of length length
with all zeros, and you have some operation to apply on arr
. In the i^th
operation, you should increment all the elements arr[startIdx<sub>i</sub>], arr[startIdx<sub>i</sub> + 1], ..., arr[endIdx<sub>i</sub>]
by inc<sub>i</sub>
.
Return arr
after applying all the updates
.
Example 1:
1 | Input: length = 5, updates = [[1,3,2],[2,4,3],[0,2,-2]] |
Example 2:
1 | Input: length = 10, updates = [[2,4,6],[5,6,8],[1,9,-4]] |
Constraints:
1 <= length <= 10^5
0 <= updates.length <= 10^4
0 <= startIdx<sub>i</sub> <= endIdx<sub>i</sub> < length
-1000 <= inc<sub>i</sub> <= 1000
Hints/Notes
- Use the diff array
Solution
Language: C++
1 | class Solution { |