01 Matrix

題目來源
給一個(gè)01矩陣,求矩陣中的1最近的0離它有多遠(yuǎn),更新矩陣變?yōu)橐粋€(gè)距離矩陣。
我想著從左上到右下遍歷一遍,從右下到左上遍歷一遍。
代碼如下:

class Solution {
public:
    vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {
        int rows = matrix.size(), cols = matrix[0].size();
        vector<vector<int>> dirs{{0, -1}, {-1, 0}, {1, 0}, {0, 1}};
        for (int i=0; i<rows; i++)
            for (int j=0; j<cols; j++) {
                if (matrix[i][j] == 1) {
                    matrix[i][j] = 100000;
                    for (int k=0; k<2; k++) {
                        if (i+dirs[k][0] >= 0 && i+dirs[k][0] < rows && j+dirs[k][1] >= 0 && j+dirs[k][1] < cols)
                            matrix[i][j] = min(matrix[i][j], matrix[i + dirs[k][0]][j + dirs[k][1]] + 1);
                    }
                }
            }
        for (int i=rows-1; i>=0; i--)
            for (int j=cols-1; j>=0; j--) {
                if (matrix[i][j] != 0) {
                    for (int k=2; k<dirs.size(); k++) {
                        if (i+dirs[k][0] >= 0 && i+dirs[k][0] < rows && j+dirs[k][1] >= 0 && j+dirs[k][1] < cols)
                            matrix[i][j] = min(matrix[i][j], matrix[i + dirs[k][0]][j + dirs[k][1]] + 1);
                    }
                }
            }
        return matrix;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這道題不看答案,沒想出思路,做題還是不夠,看了bfs的思路,然后手寫了一遍,記錄一下。這道題從bfs的角度來看,思...
    風(fēng)之羈絆閱讀 489評論 0 0
  • Given a matrix consists of 0 and 1, find the distance of ...
    greatseniorsde閱讀 317評論 0 0
  • 一前言 特征值 奇異值 二奇異值計(jì)算 三PCA 1)數(shù)據(jù)的向量表示及降維問題 2)向量的表示及基變換 3)基向量 ...
    Arya鑫閱讀 11,188評論 2 43
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,324評論 25 708
  • 目前最困撓我的就是丫頭每天早上的壞情緒拉鋸戰(zhàn)。暑假還在擔(dān)心初開學(xué)又要開始哭鬧,上學(xué)第一二天的好心情正讓我沉浸在前兩...
    溫暖李花開閱讀 197評論 0 0

友情鏈接更多精彩內(nèi)容