Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Description
- Assume you have an array of length n initialized with all 0's and are given k update operations.
- Each operation is represented as a triplet: [startIndex, endIndex, inc] which increments each element of subarray A[startIndex ... endIndex] (startIndex and endIndex inclusive) with inc.
- Return the modified array after all k operations were executed.
- Given:
- length = 5,
- updates =
- [
- [1, 3, 2],
- [2, 4, 3],
- [0, 2, -2]
- ]
- return [-2, 0, 3, 5, 3]
- Explanation:
- Initial state:
- [ 0, 0, 0, 0, 0 ]
- After applying operation [1, 3, 2]:
- [ 0, 2, 2, 2, 0 ]
- After applying operation [2, 4, 3]:
- [ 0, 2, 5, 5, 3 ]
- After applying operation [0, 2, -2]:
- [-2, 0, 3, 5, 3 ]
- Solution :
- class Solution {
- public:
- vector<int> getModifiedArray(int length, vector<vector<int>> &updates) {
- vector<int> ans(length, 0);
- for(int i=0; i<updates.size(); i++){
- int s = updates[i][0], e = updates[i][1], val = updates[i][2];
- ans[s] += val;
- if(e+1<length) ans[e+1] += -val;
- }
- for(int i=1; i<length; i++){
- ans[i] += ans[i-1];
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment