当前位置: 首页 > news >正文

Day 19:419. 甲板上的战舰

Leetcode 419. 甲板上的战舰

给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。

战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。

image.png

扫描整个矩阵。遇到战舰,就判断它所在的一行/列连续的是否还有其他战舰,遇到战舰就把设置为已经扫描过的。
先扫描行还是先扫描列都可以,但是,如果扫描行的时候后面有连续的组成战舰,就不能再扫描列了。
避免出现以下情况少算了了。
image.png

完整代码

class Solution {public int countBattleships(char[][] board) {int res = 0;int m = board.length;int n = board[0].length;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (board[i][j] == 'X') {res++;board[i][j] = '.';// 列if (((i + 1) < m) && (board[i + 1][j] == 'X')) {int t = i + 1;while (t < m && board[t][j] == 'X') {board[t][j] = '.';t++;}continue;}// 行if (((j + 1) < n) && (board[i][j + 1] == 'X')) {int t = j + 1;while (t < n && board[i][t] == 'X') {board[i][t] = '.';t++;}continue;}}}}return res;}
}
http://www.lryc.cn/news/370762.html

相关文章:

  • Web前端专科实习:技能提升、实践挑战与职业展望
  • 简单脉冲动画效果实现
  • apache poi 插入“下一页分节符”并设置下一节纸张横向的一种方法
  • 【React】useCallback和useMemo使用指南
  • XMind软件下载-详细安装教程视频
  • 一个小的画布Canvas页面,记录点的轨迹
  • docker-compose教程
  • 结果出乎意料!MySQL和MariaDB谁快?MySQL 8.0比MySQL 5.6快吗?
  • Alienware外星人X17R2 原装Win11系统镜像下载 带SupportAssist OS Recovery一键恢复
  • 【NI国产替代】高速数据采集模块,最大采样率为 125 Msps,支持 FPGA 定制化
  • 【网络安全的神秘世界】2024.6.6 Docker镜像停服?解决最近Docker镜像无法拉取问题
  • 【Python入门与进阶】1基本输入和输出
  • CTF Show MISC做题笔记
  • 【QT5】<总览二> QT信号槽、对象树及常用函数
  • Button按钮类
  • 代码随想录-二叉树 | 111 二叉树的最小深度
  • PCA降维算法
  • Fast R-CNN 与 R-CNN的不同之处
  • 前端开发环境:Vue、Element Plus、Axios
  • 我的创作纪念日-在SCDN的5年
  • AI-知识库搭建(二)GPT-Embedding模型使用
  • qt网络事件之QSocketNotifier
  • 如何统计EXCEL中的数据透视表的信息?
  • 日本结构型产品及衍生品业务变迁报告
  • 解决Mac无法上网/网络异常的方法,重置网络
  • [12] 使用 CUDA 进行图像处理
  • MyBatisPlus代码生成器(交互式)快速指南
  • 深度学习模型训练之日志记录
  • 深入理解Python中的装饰器
  • 基于springboot的人力资源管理系统源码数据库