题目链接

二维区域和检索 - 矩阵不可变

题目描述

image.png
image.png

实现代码

思想其实跟前面题目:力扣AC:矩阵区域和 类似,也是用二维前缀和的思想,实现代码如下:

  1. class NumMatrix {
  2. int[][] sums;
  3. public NumMatrix(int[][] matrix) {
  4. int m = matrix.length;
  5. if (m > 0) {
  6. int n = matrix[0].length;
  7. sums = new int[m + 1][n + 1];
  8. for (int i = 0; i < m; i++) {
  9. for (int j = 0; j < n; j++) {
  10. sums[i + 1][j + 1] = sums[i][j + 1] + sums[i + 1][j] - sums[i][j] + matrix[i][j];
  11. }
  12. }
  13. }
  14. }
  15. public int sumRegion(int row1, int col1, int row2, int col2) {
  16. return sums[row2 + 1][col2 + 1] - sums[row1][col2 + 1] - sums[row2 + 1][col1] + sums[row1][col1];
  17. }
  18. }