Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C - 3643. Flip Square Submatrix Vertically
參考資訊:
https://algo.monster/liteproblems/3643
題目:

解答:
/**
* Return an array of arrays of size *returnSize.
* The sizes of the arrays are returned as *returnColumnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/
int** reverseSubmatrix(int** grid, int gridSize, int* gridColSize, int x, int y, int k, int* returnSize, int** returnColumnSizes) {
int i = 0;
int j = 0;
*returnSize = gridSize;
*returnColumnSizes = calloc(gridSize, sizeof(int));
for (i = 0; i < gridSize; i++) {
(*returnColumnSizes)[i] = gridColSize[i];
}
for (i = x; i < (x + (k >> 1)); i++) {
for (j = y; j < (y + k); j++) {
int m = (x + k) - 1 - (i - x);
grid[i][j] = grid[i][j] ^ grid[m][j];
grid[m][j] = grid[i][j] ^ grid[m][j];
grid[i][j] = grid[i][j] ^ grid[m][j];
}
}
return grid;
}