Leetcode -- 0 행렬

1248 단어 leetcode
만약 M× N 매트릭스 의 한 요소 가 0 이면 줄 과 열 을 0 으로 합 니 다.
 
예시 1:
입력: [  [1,1,1],   [1,0,1],   [1, 1, 1] 출력: [  [1,0,1],   [0,0,0],   [1, 0, 1] 예시 2:
입력: [  [0,1,2,0],   [3,4,5,2],   [1, 3, 1, 5] 출력: [  [0,0,0,0],   [0,4,5,0],   [0,3,1,0] ]
사고의 방향
먼저 0 이 필요 한 줄 과 열 을 기록 합 니 다.
마지막 으로 필요 한 줄 과 열 에 따라 제로 작업 을 수행 합 니 다.
class Solution {
public:
    void setZeroes(vector>& matrix) {

        int row= matrix.size(), col= matrix[0].size();
        //           
        set r, c;
        for(int i= 0; i< row; ++i){
            for(int j= 0; j< col; ++j){
                if(!matrix[i][j]){
                    if(r.find(i)== r.end())
                        r.insert(i);
                    if(c.find(j)== c.end())
                        c.insert(j);
                }
            }
        }

        //       
        auto it= r.begin();
        while(it!= r.end()){
            for(int i= 0; i< col; ++i)
                matrix[*it][i]= 0;
            ++it;
        }

        //       
        it= c.begin();
        while(it!= c.end()){
            for(int i= 0; i< row; ++i)
                matrix[i][*it]= 0;
            ++it;
        }
    }
};

좋은 웹페이지 즐겨찾기