https://leetcode.com/problems/battleships-in-a-board/description/
Solution:
思路:
限定了不會(huì)有相鄰的兩個(gè)戰(zhàn)艦的存在,有了這一點(diǎn)限制,那么我們只需要遍歷一次二維數(shù)組就行了,只要找出戰(zhàn)艦的起始點(diǎn)。所謂的戰(zhàn)艦起始點(diǎn),就是為X的點(diǎn),而且該點(diǎn)的上方和左邊的點(diǎn)不能為X,所以我們只要找出所有滿足這個(gè)條件的點(diǎn)即可
Time Complexity: O(N) Space Complexity: O(N)
Solution Code:
class Solution {
public int countBattleships(char[][] board) {
int m = board.length;
if (m==0) return 0;
int n = board[0].length;
int count=0;
for (int i=0; i<m; i++) {
for (int j=0; j<n; j++) {
if (board[i][j] == '.') continue;
if (i > 0 && board[i-1][j] == 'X') continue;
if (j > 0 && board[i][j-1] == 'X') continue;
count++;
}
}
return count;
}
}