请你实现一个类 SubrectangleQueries ,它的构造函数的参数是一个 rows x cols 的矩形(这里用整数矩阵表示),并支持以下两种操作:
- updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)
- 用 newValue 更新以 (row1,col1) 为左上角且以 (row2,col2) 为右下角的子矩形。
- getValue(int row, int col)
- 返回矩形中坐标 (row,col) 的当前值。
class SubrectangleQueries {
private int[][] rectangle;
public SubrectangleQueries(int[][] rectangle) {
this.rectangle = rectangle;
}
public void updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) {
for (int i = row1; i <= row2; i++)
for (int j = col1; j <= col2; j++)
this.rectangle[i][j] = newValue;
}
public int getValue(int row, int col) {
return this.rectangle[row][col];
}
}
/**
* Your SubrectangleQueries object will be instantiated and called as such:
* SubrectangleQueries obj = new SubrectangleQueries(rectangle);
* obj.updateSubrectangle(row1,col1,row2,col2,newValue);
* int param_2 = obj.getValue(row,col);
*/
构造器保存一个二维数组,然后一个替换方法,一个查找方法,我觉得这道题写法应该多一样,也没什么地方可以优化的。