intcountBattleships(vector<vector<char>>&board) {
int ans =0;
for (int row =0; row < board.size(); row++) {
for (int column =0; column < board[row].size(); ++column) {
if (board[row][column] =='X') {
dfs(board, row, column);
ans++;
}
}
}
return ans;
}
voiddfs(vector<vector<char>>&board, int row, int column) {
if (row >= board.size() || column >= board[row].size() || board[row][column] =='.') {
return;
}
board[row][column] ='.';
dfs(board, row, column +1);
dfs(board, row +1, column);
}
方法 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
intcountBattleships(vector<vector<char>>& board) {
int row = board.size();
int col = board[0].size();
int ans =0;
for (int i =0; i < row; ++i) {
for (int j =0; j < col; ++j) {
if (board[i][j] =='X') {
if (i >0&& board[i -1][j] =='X') {
continue;
}
if (j >0&& board[i][j -1] =='X') {
continue;
}
ans++;
}
}
}
return ans;
}