由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 大家帮我看看这段code 哪儿错了
相关主题
Surrounded RegionsSurrounded Regions 题目没读懂
Surrounded Regions, dfs solution. 过不了online testLeetCode那个surrounded regions解法不对吧?
问leetcode上surrounded regions,新的test case出runtime errorleetcode Surrounded Regions
Leetcode Surrounded Regions Large Case Runtime Error现在DFS过不了surround region了?
Leetcode 的 Surrounded Regions 好难过大OJ (in JAVA)问到题目
请教一下,leetcode surrounded regions这题为什么我的代码会超时来问一下leetcode Surrounded Regions
弱问OJ的Surrounded Regions那题Surrounded Regions 问题
leetcode上的大oj和小oj有什么本质差别吗?Surrounded Regions 做DFS的空间复杂度是多少
相关话题的讨论汇总
话题: board话题: flooding话题: int话题: col话题: row
进入JobHunting版参与讨论
1 (共1页)
g***j
发帖数: 1275
1
Surrounded Regions ,就是把所有的不与边界相连的一大片O 转换成X
大家帮我看看这段code 哪儿错了? 大集合过不了
class Solution {
public:
void solve(vector> &board) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int row = board.size();

if(row == 0) return;

int col = board[0].size();

if(col == 0) return;

for(int i = 0; i < col; i++) {
flooding(board, 0, i);
flooding(board, row-1, i);
}

for(int i = 1; i <= row-2; i++) {
flooding(board, i, 0);
flooding(board, i, col-1);
}

for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {

if(board[i][j] == 'O')
board[i][j] = 'X';
else if(board[i][j] == '@')
board[i][j] = 'O';
}
}
}

void flooding(vector > &board, int i, int j) {


int row = board.size();

int col = board[0].size();

if(i < 0 || j < 0 || i >= row || j >= col || board[i][j] != 'O')
return;

board[i][j] = '@';
flooding(board, i-1,j);

flooding(board, i, j-1);

flooding(board, i+1, j);

flooding(board, i, j+1);

}
};
g**G
发帖数: 767
2
c++不清楚,但你java这么写,这个题是肯定要stack overflow的……
建议用iterative的方法写。
(to leetcode,这个题是不是考虑考虑改改大集合的判分标准,我优化了半天还是跑了
好几次才凑巧过了一次……)
p****e
发帖数: 3548
3
改成这样就可以了
class Solution {
public:
int row, col;
void solve(vector> &board) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
row = board.size();

if(row == 0) return;

col = board[0].size();

if(col == 0) return;

for(int i = 0; i < col; i++) {
flooding(board, 0, i);
flooding(board, row-1, i);
}

for(int i = 1; i <= row-2; i++) {
flooding(board, i, 0);
flooding(board, i, col-1);
}

for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {

if(board[i][j] == 'O')
board[i][j] = 'X';
else if(board[i][j] == '@')
board[i][j] = 'O';
}
}
}

void flooding(vector > &board, int i, int j) {

if(i < 0 || j < 0 || i >= row || j >= col || board[i][j] != 'O')
return;

board[i][j] = '@';
flooding(board, i-1,j);

flooding(board, i, j-1);

flooding(board, i+1, j);

flooding(board, i, j+1);

}
};
g***j
发帖数: 1275
4
请问为啥把row 和col拿出来就有变化了呢? stack overflow么?

【在 p****e 的大作中提到】
: 改成这样就可以了
: class Solution {
: public:
: int row, col;
: void solve(vector> &board) {
: // Start typing your C/C++ solution below
: // DO NOT write int main() function
: row = board.size();
:
: if(row == 0) return;

p****e
发帖数: 3548
5
每次调用size()函数是要耗时的
而且你写在递归里面,要进栈出栈,也是耗时的

【在 g***j 的大作中提到】
: 请问为啥把row 和col拿出来就有变化了呢? stack overflow么?
1 (共1页)
进入JobHunting版参与讨论
相关主题
Surrounded Regions 做DFS的空间复杂度是多少Leetcode 的 Surrounded Regions 好难过大OJ (in JAVA)
Cisco onsite进了第二轮,拿offer的机会有多大呢。。。请教一下,leetcode surrounded regions这题为什么我的代码会超时
会计硕士需要办身份找什么样的公司?弱问OJ的Surrounded Regions那题
急问一般regional的firm会不会做国内工作那段的reference check?leetcode上的大oj和小oj有什么本质差别吗?
Surrounded RegionsSurrounded Regions 题目没读懂
Surrounded Regions, dfs solution. 过不了online testLeetCode那个surrounded regions解法不对吧?
问leetcode上surrounded regions,新的test case出runtime errorleetcode Surrounded Regions
Leetcode Surrounded Regions Large Case Runtime Error现在DFS过不了surround region了?
相关话题的讨论汇总
话题: board话题: flooding话题: int话题: col话题: row