请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

leetcode130问题,波波老师麻烦帮我分析一下,不知道哪里出了问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 boolean[][] visited;
    int m;
    int n;
    int[][] move = {{0,1},{-1,0},{0,-1},{1,0}};
    public void solve(char[][] board) {
          m = board.length;
          if(m==0)
              return;
          n = board[0].length;
          visited = new boolean[m][n];
           
          for(int i= 0 ;i<m;i++){
              for(int j=0;j<n;j++){
                  if(board[i][j] == 'O' && !visited[i][j]){
                      mark(i,j,board);
 
                  }
              }
          }
        return;
        }
 
    private boolean mark(int i, int j, char[][] board) {
        visited[i][j] = true;
         
        boolean lable = false;
         
        if(i==m-1 || j==n-1 || i==0 || j==0)
            lable =  true;
         
        for(int k=0; k<4; k++){
            int newx = i + move[k][0];
            int newy = j + move[k][1];
            if(inarea(newx,newy) && !visited[newx][newy] && board[newx][newy]=='O'){
                lable  = mark(newx,newy,board) || lable ;
            }
            if(!lable)
                board[i][j] = 'X';
        }
         
        return lable;
         
    }
 
    private boolean inarea(int i, int j) {
        return i>=0 && j>=0 && i<m && j<n;
    }


正在回答

插入代码

1回答

liuyubobobo 2018-08-14 18:38:36

130使用DFS无法ac,因为极端数据会导致栈溢出,可以参考这里的注释:)


https://github.com/liuyubobobo/Play-Leetcode/blob/master/0130-Surrounded-Regions/cpp-0130/main.cpp


改成BFS就ok了:)加油!

0 回复 有任何疑惑可以回复我~
  • 提问者 慕工程2559728 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-08-15 13:43:31
  • 老师,这段代码速度上只击败了37%,有优化速度的方法吗
    回复 有任何疑惑可以回复我~ 2020-06-23 15:44:24
  • leetcode 上的这个百分比不准,很多时候一个问题刚开始测试数据比较小,后来测试数据越来越大,导致不可能超越前面的程序。我个人不建议在非复杂度级别的优化上花时间,但一定感兴趣,Accepted Solutions Runtime Distribution 里面的百分比分布图是可以点击的,进而可以查看研究实验别人的代码。加油!:)
    回复 有任何疑惑可以回复我~ 2020-06-23 15:48:49
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号