0%

419. Battleships in a Board

O(mn) time O(1) space
对于每个X只要确定左边和上边不是X就行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int countBattleships(vector<vector<char>>& board) {
if (board.empty() || board[0].empty()) return 0;
int res = 0;
int n = board.size(), m = board[0].size();
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if ((board[i][j] == 'X')
&& (i == 0 || board[i - 1][j] != 'X')
&& (j == 0 || board[i][j - 1] != 'X')) {
++res;
}
}
}
return res;
}
};