题目

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经典“感染”思路)相关推荐

  1. 【LeetCode每日一题】——419.甲板上的战舰

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[题目进阶] 九[时间频度] 十[代码实现] 十一[提交结果] 一[题目类别 ...

  2. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  3. leetcode刷题 74.搜索二维矩阵

    题目分析 这是一道简单的查找二维矩阵的题目,所以解决这题有一个最简单的解法就是遍历二维数组即可:但是我们应该注意到题目中的每行整数从左到右是按升序排列的,第一个整数大于前一行的最后一个整数,介于此,我 ...

  4. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  5. 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)

    [LeetCode][HOT]240. 搜索二维矩阵 II 文章目录 [LeetCode][HOT]240. 搜索二维矩阵 II package hot;public class Solution24 ...

  6. LeetCode 07: T48. 旋转图像 (中等); T54. 螺旋矩阵(中等); T240. 搜索二维矩阵 II (中等)

    文章目录 T19: 48. 旋转图像 (中等) 思路 解法 1: 新增数组 解法 2: 原地旋转 T20: 54. 螺旋矩阵(中等) 思路 解法: 到边界换方向 T21: 240. 搜索二维矩阵 II ...

  7. LeetCode 419. 甲板上的战舰

    1. 题目 给定一个二维的甲板, 请计算其中有多少艘战舰. 战舰用 'X'表示,空位用 '.'表示. 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成. 战舰只能水平或者垂直放置. 换句 ...

  8. 419. 甲板上的战舰

    给定一个二维的甲板, 请计算其中有多少艘战舰. 战舰用 'X'表示,空位用 '.'表示. 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成. 战舰只能水平或者垂直放置.换句话说,战舰只能 ...

  9. python 战舰_419. 甲板上的战舰(Python)

    题目 难度:★★★☆☆ 类型:二维数组 方法:深度优先搜索 力扣链接请移步本题传送门 更多力扣中等题的解决方案请移步力扣中等题目录 给定一个二维的甲板, 请计算其中有多少艘战舰. 战舰用 'X'表示, ...

最新文章

  1. TYVJ P1053 字符串的展开 Label:字符 水
  2. 超级usb万能启动盘
  3. 盘点那些让程序员目瞪口呆的Bug都有什么?
  4. Good Bye 2021: 2022 is NEAR A-Integer Diversity(水题)
  5. mysql 编辑数据库内容_详解mysql数据库增删改操作
  6. SpringBoot拦截器配置
  7. Mac上搭建Go语言环境及第一个hello.go程序
  8. vuex mapstate_Vuex从使用到原理解析
  9. 450B Jzzhu and Sequences 我考研之后做的第一道题
  10. php怎么自动识别车牌号,车牌号自动识别系统怎么录入,很多你不知道的潜规则...
  11. 微信公众号插入公式介绍
  12. android强制开启深色模式bug,强制深色模式软件
  13. 计算机基础及photoshop应用好考吗,计算机基础及Photoshop应用考试技巧
  14. 灯神动态规划(Dynamic Programing)学习笔记 打劫问题 凑整问题 背包问题 例题+原理+源码超详细讲解
  15. 国内知名流程管理软件-汇总介绍
  16. 正则表达式(菜鸟教程)
  17. 名帖181 黄庭坚 行书《苦笋赋》
  18. 域格4G模块专网设置说明
  19. 贝赛尔曲线及其应用全面解析
  20. linux系统安装vivado软件,vivado 2017下载 Xilinx Vivado HLx 2017.2 在线安装包 官方安装版(附许可证) 64位 Linux版 下载-脚本之家...

热门文章

  1. HDU多校5 - 6816 Boring Game(模拟)
  2. 牛客多校6 - K-Bag(哈希+滑动窗口)
  3. android 点击item跳转页面,Android RecyclerView Item 点击事件,简单
  4. windows server 2016安装oracle 10_Weblogic12.1.3.0补丁安装(win server与linux安装步骤介绍)
  5. 机器学习-集成之AdaBoost算法原理及实战
  6. 网络打印机查找不到_打印机驱动的安装教程
  7. 长链剖分:O(nlogn)预处理O(1)求kth祖先
  8. QT乱码总结2.gbk和ANSI和gb2312的区别
  9. QT乱码总结1.Unicode 和 UTF-8
  10. Python 实现斐波那契数列