【leetcode】304. 二维区域和检索 - 矩阵不可变
typedef struct { int dp[200][200]; } NumMatrix; NumMatrix* numMatrixCreate(int** matrix, int matrixSize, int* matrixColSize) { NumMatrix* obj = (NumMatrix*)calloc(1, sizeof(NumMatrix)); for (int i = 0; i < matrixSize; i++) for (int j = 0; j < *matrixColSize; j++) obj->dp[i + 1][j + 1] = matrix[i][j] + obj->dp[i + 1][j] + obj->dp[i][j + 1] - obj->dp[i][j]; return obj; } int numMatrixSumRegion(NumMatrix* obj, int row1, int col1, int row2, int col2) { return obj->dp[row2 + 1][col2 + 1] - obj->dp[row1][col2 + 1] - obj->dp[row2 + 1][col1] + obj->dp[row1][col1]; } void numMatrixFree(NumMatrix* obj) { free(obj); }