leetcode 419. Battleships in a Board | 419. 甲板上的战舰(二维矩阵DFS经典“感染”思路)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 419. Battleships in a Board | 419. 甲板上的战舰(二维矩阵DFS经典“感染”思路)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/battleships-in-a-board/
題解
一道簡單的 medium 題,仍然是“感染”的思想,只不過本題“感染”的過程是消除的過程。
class Solution {int M;int N;int count;public int countBattleships(char[][] board) {M = board.length;N = board[0].length;count = 0;for (int i = 0; i < M; i++) {for (int j = 0; j < N; j++) {if (board[i][j] == 'X') {count++;bfsErase(board, i, j);}}}return count;}public void bfsErase(char[][] board, int i, int j) {if (i < 0 || j < 0 || i >= M || j >= N) return;board[i][j] = '.';if (i > 0 && board[i - 1][j] == 'X') {bfsErase(board, i, j);} else if (j > 0 && board[i][j - 1] == 'X') {bfsErase(board, i, j - 1);} else if (i < M - 1 && board[i + 1][j] == 'X') {bfsErase(board, i + 1, j);} else if (j < N - 1 && board[i][j + 1] == 'X') {bfsErase(board, i, j + 1);}} }總結
以上是生活随笔為你收集整理的leetcode 419. Battleships in a Board | 419. 甲板上的战舰(二维矩阵DFS经典“感染”思路)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 421. Maximu
- 下一篇: leetcode 877. Stone