leetcode-130. Surrounded Regions

    xiaoxiao2021-04-16  39

    这道题见鬼了,为什么我的代码中,dfs()函数里,注释掉的代码可以AC,但是现在的代码跑就是Runtime Error呢?

    class Solution { public: void dfs(vector<vector<char>> &board, int row, int clo) { int m=board.size(), n = board[0].size(); /*if (board[row][clo]=='O'){ board[row][clo] = 'a'; if (row > 1) { dfs(board, row-1, clo); } if (clo > 1) dfs(board, row, clo-1); if (row <m-1) dfs(board, row+1, clo); if (clo < n-1) dfs(board, row, clo+1); }*/ if (row<0||row>=m || clo<0||clo>=n || board[row][clo]=='a') return; if (board[row][clo]=='O') { board[row][clo] = 'a'; dfs(board, row-1, clo); dfs(board, row, clo-1); dfs(board, row, clo+1); dfs(board, row+1, clo); } } void dfs_1(vector<vector<char>> &board, int row, int clo) { int m=board.size(), n = board[0].size(); if (row<1||row>=m-1 || clo<1||clo>=n-1) return; if (board[row][clo] == 'O'){ board[row][clo] = 'X'; } } void dfs_2(vector<vector<char>> &board, int row, int clo) { int m=board.size(), n = board[0].size(); if (board[row][clo]=='a'){ board[row][clo] = 'O'; if (row > 1) { dfs(board, row-1, clo); } if (clo > 1) dfs(board, row, clo-1); if (row <m-1) dfs(board, row+1, clo); if (clo < n-1) dfs(board, row, clo+1); } } void solve(vector<vector<char>>& board) { if (board.size()==0 || board[0].size()==0||board.size()==1 || board[0].size()==1 ||board.size()==2 || board[0].size()==2) return; int m=board.size(), n = board[0].size(); //cout<<0<<endl; for (int i=0; i<m; i++) { dfs(board, i, 0); dfs(board, i, n-1); } //cout<<"?"<<endl; for (int i=0; i<n; i++) { dfs(board, 0, i); dfs(board, m-1, i); } //cout<<1<<endl; for (int i=1; i<m-1; i++) { for (int j=1; j<n-1; j++) { if (board[i][j] == 'O'){ board[i][j] = 'X'; } //cout<<3<<endl; } //cout<<2<<endl; } /* cout<<1<<endl; for (int i=0; i<m; i++) { dfs_2(board, i, 0); dfs_2(board, i, n-1); } for (int i=0; i<n; i++) { dfs_2(board, 0, i); dfs_2(board, m-1, i); }*/ for (int i=0; i<m; i++) { for (int j=0; j<n; j++) { if (board[i][j] == 'a'){ board[i][j] = 'O'; } //cout<<3<<endl; } //cout<<2<<endl; } return; } };
    转载请注明原文地址: https://ju.6miu.com/read-672434.html

    最新回复(0)