题目链接:419. 甲板上的战舰
深度优先搜索,将整个矩阵搜索一遍。
from typing import List
class Solution:
def countBattleships(self, board: List[List[str]]) -> int:
if len(board) == 0 or len(board[0]) == 0:
return 0
visited, ans = set(), 0
for i, row in enumerate(board):
for j, item in enumerate(row):
if item != 'X' or (i, j) in visited:
continue
ans += 1
ii = i
while ii < len(board) and board[ii][j] == 'X':
visited.add((ii, j))
ii += 1
jj = j
while jj < len(board[0]) and board[i][jj] == 'X':
visited.add((i, jj))
jj += 1
return ans