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;
}
}
}