程式語言 - LeetCode - C++ - 3567. Minimum Absolute Difference in Sliding Submatrix



參考資訊:
https://algo.monster/liteproblems/3567

題目:


解答:

class Solution {
public:
    vector<vector<int>> minAbsDiff(vector<vector<int>>& grid, int k) {
        int row_size = grid.size();
        int col_size = grid[0].size();
        vector<vector<int>> ret((row_size - k) + 1, vector<int>((col_size - k) + 1, 0));

        for (int i = 0; i <= row_size - k; ++i) {
            for (int j = 0; j <= col_size - k; ++j) {

                vector<int> q;
                for (int ro = i; ro < (i + k); ++ro) {
                    for (int cl = j; cl < (j + k); ++cl) {
                        q.push_back(grid[ro][cl]);
                    }
                }

                sort(q.begin(), q.end());

                int m = INT_MAX;
                for (int c = 1; c < q.size(); c++) {
                    int v = abs(q[c] - q[c - 1]);

                    if (v > 0) {
                        m = min(m, v);
                    }
                }
                ret[i][j] = (m == INT_MAX) ? 0 : m;
            }
        }

        return ret;
    }
};