typedef struct {
int **arr;
int m;
int n;
} NumMatrix;
NumMatrix* numMatrixCreate(int** matrix, int matrixSize, int* matrixColSize) {
NumMatrix* obj = (NumMatrix*)malloc(sizeof(NumMatrix));
if(!obj->arr || !obj->m ||!obj->n) return obj;
obj->arr = matrix;
obj->m = matrixSize;
obj->n = obj->m ? matrixColSize[0] : 0;
return obj;
}
void numMatrixUpdate(NumMatrix* obj, int row, int col, int val) {
if(!obj->arr || !obj->m ||!obj->n) return;
obj->arr[row][col] = val;
}
int numMatrixSumRegion(NumMatrix* obj, int row1, int col1, int row2, int col2) {
int i, j, cnt=0;
if(!obj->arr || !obj->m ||!obj->n) return 0;
for(i=row1; i<=row2 && i<obj->m; i++){
for(j=col1; j<=col2&&j<obj->n; j++){
cnt += obj->arr[i][j];
}
}
return cnt;
}
void numMatrixFree(NumMatrix* obj) {
free(obj);
}
/**
* Your NumMatrix struct will be instantiated and called as such:
* NumMatrix* obj = numMatrixCreate(matrix, matrixSize, matrixColSize);
* numMatrixUpdate(obj, row, col, val);
* int param_2 = numMatrixSumRegion(obj, row1, col1, row2, col2);
* numMatrixFree(obj);
*/
leetcode-308. 二维区域和检索 - 可变-C语言
最新推荐文章于 2024-07-30 06:19:15 发布