leetcode 542. 01マトリックス(C++)

1228 ワード

0と1からなる行列を与え,各要素から最も近い0までの距離を見つけた.
2つの隣接する要素間の距離は1です.
例1:入力:
0 0 0
0 1 0
0 0 0

出力:
0 0 0
0 1 0
0 0 0

例2:入力:
0 0 0
0 1 0
1 1 1

出力:
0 0 0
0 1 0
1 2 1

注意:
  • 所与の行列の要素個数は10000を超えない.
  • 所与の行列の少なくとも1つの要素は0である.
  • 行列の要素は、上、下、左、右の4つの方向にのみ隣接しています.

  • C++
    class Solution {
    public:
        vector> updateMatrix(vector>& matrix) 
        {
            int m=matrix.size();
            int n=matrix[0].size();
            vector> tmp;
            vector> flag(m,vector(n,0));
            for(int i=0;i> vec;
                for(auto it:tmp)
                {
                    int r=it.first;
                    int c=it.second;
                    for(int k=0;k<4;k++)
                    {
                        int y=r+dy[k];
                        int x=c+dx[k];
                        if(y>=0 && y=0 && x