2352. 相等行列对

2352. 相等行列对

在这里插入图片描述


C代码:直接遍历行列、比对行列就行啊

bool equal(int row, int col, const int** grid, int gridSize) {
    
    
    for (int i = 0; i < gridSize; i++) {
    
    
        if (grid[row][i] != grid[i][col]) {
    
    
            return false;
        }
    }
    return true;
}

int equalPairs(int** grid, int gridSize, int* gridColSize) {
    
    
    int res = 0;
    for (int row = 0; row < gridSize; row++) {
    
    
        for (int col = 0; col < gridSize; col++) {
    
    
            if (equal(row, col, grid, gridSize)) {
    
    
                res++;
            }
        }
    }
    return res;
}

C代码:很无语的代码。。

bool equals(int* arr1, int* arr2, int n) {
    
    
    for (int i = 0; i < n; ++i) {
    
    
        if (arr1[i] != arr2[i]) {
    
    
            return false;
        }
    }
    return true;
}

int equalPairs(int** grid, int gridSize, int* gridColSize){
    
    
    int m = gridSize;
    int n = gridColSize[0];
    int** arr = (int**)malloc(sizeof(int*) * m);
    for(int i = 0; i < m; ++i) {
    
    
        arr[i] = (int*)malloc(sizeof(int) * n);
    }
    for(int i = 0; i < m; ++i) {
    
    
        for(int j = 0; j < n; ++j) {
    
    
            arr[j][i] = grid[i][j];
        }
    }

    int cnt = 0;
    for(int i = 0; i < m; ++i) {
    
    
        for(int j = 0; j < n; ++j) {
    
    
            if (equals(grid[i], arr[j], m)) {
    
    
                ++cnt;
            }
        }
    }
    return cnt;
}

猜你喜欢

转载自blog.csdn.net/LIZHUOLONG1/article/details/131069196