Skip to content

Commit 3a07eb4

Browse files
authored
Create 1476-subrectangle-queries.js
1 parent ac87e35 commit 3a07eb4

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

1476-subrectangle-queries.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* @param {number[][]} rectangle
3+
*/
4+
const SubrectangleQueries = function(rectangle) {
5+
this.rect = rectangle
6+
this.ops = []
7+
};
8+
9+
/**
10+
* @param {number} row1
11+
* @param {number} col1
12+
* @param {number} row2
13+
* @param {number} col2
14+
* @param {number} newValue
15+
* @return {void}
16+
*/
17+
SubrectangleQueries.prototype.updateSubrectangle = function(row1, col1, row2, col2, newValue) {
18+
this.ops.push([row1, col1, row2, col2, newValue])
19+
};
20+
21+
/**
22+
* @param {number} row
23+
* @param {number} col
24+
* @return {number}
25+
*/
26+
SubrectangleQueries.prototype.getValue = function(row, col) {
27+
for(let i = this.ops.length - 1; i >= 0; i--) {
28+
const op = this.ops[i]
29+
if(op[0] <= row && op[1] <= col && row <= op[2] && col <= op[3]) return op[4]
30+
}
31+
return this.rect[row][col]
32+
};
33+
34+
/**
35+
* Your SubrectangleQueries object will be instantiated and called as such:
36+
* var obj = new SubrectangleQueries(rectangle)
37+
* obj.updateSubrectangle(row1,col1,row2,col2,newValue)
38+
* var param_2 = obj.getValue(row,col)
39+
*/

0 commit comments

Comments
 (0)