• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Uriel's Corner

            Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
            posts - 0, comments - 50, trackbacks - 0, articles - 594

            [LeetCode]Surrounded Regions-2014.01.17

            Posted on 2014-01-17 18:16 Uriel 閱讀(260) 評(píng)論(0)  編輯 收藏 引用 所屬分類: LeetCode
            做的想吐血的一題,交了33次才過(guò),創(chuàng)紀(jì)錄了...
            題目很簡(jiǎn)單,就是一個(gè)字符陣,由X和O構(gòu)成,找出所有O構(gòu)成的連通區(qū)域,若該區(qū)域所有O都在字符陣內(nèi)部(不在邊界上),則把該連通區(qū)域所有O都換成X,其余不變

            這題一看到就想著怎么這么裸的DFS,于是想也沒(méi)想敲完直接RE,看RE返回的是空數(shù)據(jù),于是加了判board為空的語(yǔ)句,交上去還是RE,因?yàn)橹白鯨eetCode這種RE的情況都是沒(méi)有判空,于是換了N種寫法判空,還是RE

            因?yàn)槭情_(kāi)了個(gè)數(shù)組記錄字符陣每個(gè)元素是否訪問(wèn)過(guò),又開(kāi)了另一個(gè)數(shù)組判該連通區(qū)域是否鄰邊,想著是不是數(shù)組開(kāi)太大了,于是試了各種數(shù)組大小,發(fā)現(xiàn)開(kāi)bool型,只開(kāi)一個(gè)數(shù)組能過(guò),后來(lái)想到其實(shí)不需要另開(kāi)一個(gè)數(shù)組記錄是否鄰邊,搜的時(shí)候只搜四邊上為O的那些位置,這樣一定是鄰邊的,這個(gè)時(shí)間復(fù)雜度也小一些,于是改了,還是RE,而且掛在大數(shù)據(jù)上,但是我并沒(méi)有開(kāi)數(shù)組,不會(huì)有越界發(fā)生,然后就各種吐血的改來(lái)改去,終于AC,雖然還是很莫名...為啥之前會(huì)報(bào)RE呢?

            這是AC的代碼:

             1 class Solution {
             2 public:
             3     void DFS(int x, int y, vector<vector<char>> &board) {
             4         int tx, ty;
             5         if(x >= board.size() || y >= board[0].size() || x < 0 || y < 0 || board[x][y] != 'O') return;
             6         board[x][y] = 'Q';
             7         DFS(x, y + 1, board);
             8         DFS(x, y - 1, board);
             9         DFS(x + 1, y, board);
            10         DFS(x - 1, y, board);
            11     }
            12     
            13     void solve(vector<vector<char>> &board) {
            14         if(board.empty()) return;
            15         int row = board.size();
            16         if(!row) return;
            17         int col = board[0].size();
            18         if(!col) return;
            19         for(int i = 0; i < row; ++i) {
            20             if(board[i][0] == 'O') DFS(i, 0, board);
            21             if(board[i][col - 1] == 'O') DFS(i, col - 1, board);
            22         }
            23         for(int i = 0; i < col; ++i) {
            24             if(board[0][i] == 'O') DFS(0, i, board);
            25             if(board[row - 1][i] == 'O') DFS(row - 1, i, board);
            26         }
            27         for(int i = 0 ; i < row; ++i) {
            28             for(int j = 0; j < col; ++j) {
            29                 if(board[i][j] == 'Q') board[i][j] = 'O';
            30                 else if(board[i][j] == 'O') board[i][j] = 'X';
            31             }
            32         }
            33     }
            34 
            35 };
            久久久久久毛片免费看 | 久久精品aⅴ无码中文字字幕不卡| 久久人人爽人人爽人人片AV麻豆| 欧美久久久久久精选9999| 亚洲欧美国产精品专区久久| 亚洲精品国产美女久久久| 91精品国产91久久久久久蜜臀| 一级做a爰片久久毛片看看| 久久精品国产亚洲77777| 久久久网中文字幕| 久久亚洲精精品中文字幕| 国产精品99久久久久久董美香 | 99蜜桃臀久久久欧美精品网站| 久久99国产精品久久久| 精品国产乱码久久久久软件| 国产精品一久久香蕉产线看| 性做久久久久久久久浪潮| 亚洲精品高清国产一久久| 亚洲人成伊人成综合网久久久| 久久久精品日本一区二区三区| 久久亚洲欧美国产精品| 亚州日韩精品专区久久久| 伊人久久大香线蕉精品| 亚洲av伊人久久综合密臀性色| 国产福利电影一区二区三区,免费久久久久久久精 | 国产精品免费久久久久久久久| 色婷婷综合久久久中文字幕| 久久只有这里有精品4| 久久这里有精品视频| 久久久久99精品成人片| 国内精品久久久久久久久| 99久久精品免费看国产一区二区三区 | 久久精品一本到99热免费| 久久婷婷激情综合色综合俺也去 | 亚洲色欲久久久综合网东京热| 精品久久久久久无码不卡| 亚洲精品无码久久毛片| yy6080久久| 精品无码久久久久久午夜| 99久久精品费精品国产一区二区| 97久久超碰成人精品网站|