程式語言 - LeetCode - C - 3546. Equal Sum Grid Partition I



參考資訊:
ChatGPT

題目:


方法:

1. 加總全部數值
2. 除以2就是要比對的數值
3. Row方向加總並且比對
4. Col方向加總並且比對

解答:

bool canPartitionGrid(int** grid, int gridSize, int* gridColSize)
{
    typedef long long ll;

    ll v = 0;
    ll sum = 0;
    ll target = 0;
    int i = 0;
    int j = 0;
    int row_size = gridSize;
    int col_size = gridColSize[0];

    for (i = 0; i < row_size; i++) {
        for (j = 0; j < col_size; j++) {
            sum += grid[i][j];
        }
    }

    if (sum % 2) {
        return false;
    }

    target = sum >> 1;
    for (i = 0; i < row_size; i++) {
        for (j = 0; j < col_size; j++) {
            v += grid[i][j];
            if (v == target) {
                return true;
            }
        }
    }

    v = 0;
    for (i = 0; i < col_size; i++) {
        for (j = 0; j < row_size; j++) {
            v += grid[j][i];
            if (v == target) {
                return true;
            }
        }
    }

    return false;
}