SubRectangleQueries
PROBLEM
Implement the class SubrectangleQueries which receives a rows x cols rectangle as a matrix of integers in the constructor and supports two methods:
updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)
Updates all values with newValue in the subrectangle whose upper left coordinate is (row1,col1) and bottom right coordinate is (row2,col2).
getValue(int row, int col)
Returns the current value of the coordinate (row,col) from the rectangle.
You want to update element between row2 and row3 and between col3 and col6
012345678
0+--------+
1+oooooooo+
2+oXXXXXoo+
3+oXXXXXoo+
4+oooooooo+
5+oooooooo+
6+--------+
SOLUTION
Steps
Iterate between the two rows and two cols, at each step update the value.
- For loop from row1 to row2:
- For loop from col1 to col2
Code
void updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) {
for (int r = row1; r <= row2; r++) {
for (int c = col1; c <= col2; c++) {
rect[r][c] = newValue;
}
}
}