LeetCode:419. Battleships in a Board

Zynq 【SDK裸机开发之PS】——DDR的内存分配使用详解 Zynq如果跑操作系统的话,内存管理的工作都会交给系统来操作,但是如果是裸机的话,则需要自己对DDR3的内存进行管理。 阅读详情

今天还想再刷一道题,做算法题好像心都静下来了!

Given an 2D board, count how many battleships are in it. The battleships are represented with 'X's, empty slots are represented with'.'s. You may assume the following rules:
You receive a valid board, made of only battleships or empty slots.
Battleships can only be placed horizontally or vertically. In other words, they can only be made of the shape 1xN (1 row, N columns) or Nx1 (N rows, 1 column), where N can be of any size.
At least one horizontal or vertical cell separates between two battleships - there are no adjacent battleships.

-----------------------------------------------------------------我是分割线----------------------------------------------------------------------

题目原意是:水平方向或者竖直方向上的'X'集合算一条军舰,不能拐弯,不会出现两条军舰挨着的情况。

通过仔细观察发现:军舰开头位置为X,它的上面必须为“_”,它的左边必须为“_”。需要特殊考虑最上面的情况和最左边的情况。通过全部遍历这个二维数组,找到船的开头,记为找到一个军舰。代码如下:

class Solution{
	public:
		int countBattleships(vector<vector<char>>&board)
		{
			if(board.empty()||board[0].empty())
				return 0;
			int value=0;
			int m=board.size();
			int n=board[0].size();
			for(int i=0;i<m;i++)
			{
				for(int j=0;j<n;j++)
				{
					if(board[i][j]=='X'&&(i>0||board[i-1][j]=='_'&&(j>0||board[i][j-1]=='X')))
					{
						continue;
						++value;
					}
				}
			}
			return value;
		}
}; 
同时,还可以通过深度优先算法来实现。深度优先算法用最简单的语言表示就是:一条路走到黑,然后再倒回来再选择一条路走到黑。直到将所有路遍历完全。本题比较简单,两艘船之间肯定会有“_”间隔。代码如下:

class Solution{
	private:
		vector<vector<bool>> visited;
		int rsize,csize;
		int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
	public:
		void dfs(vector<vector<char>>&board,int i,int j)
		{
			if(i<0||j<0||i>rsize||j>csize||board[i][j]=='_'||visited[i][j])
				return;
			visited[i][j]=true;
			for(int d=0;d<4;d++)
			{
				dfs(board,i+board[d][0],j+board[d][1]);
			}
		}
		int countBattleships(vector<vector<char>>&board)
		{
			if (board.empty())
            	return 0;


        rsize = board.size();
        csize = board[0].size();
        visited.resize(rsize, vector<bool>(csize, false));
        int count = 0;
		 for (int i = 0; i < rsize; i++) {
            for (int j = 0; j < csize; j++) {
                if (board[i][j] == 'X' && !visited[i][j]) {
                    count++;
                    dfs(board, i, j);
                }
            }
        }
        return count;
		}
}; 






黑猫带你学UFS协议第13篇:UFS初始化详解(Boot Operation) 本文详细解析了UFS设备的初始化过程,包括部分初始化、加载启动代码(可选)和初始化完成三个阶段。重点介绍了如何通过设备描述符和逻辑单元描述符配置引导特性,以及如何从UFS设备加载启动代码。内容适用于嵌入式硬件和存储领域的开发者。 阅读详情

相关推荐

IFRS 9与CECL对比解析:跨国企业财务必须掌握的两种信用损失模型

本文深度解析IFRS 9与CECL两种信用损失模型的差异,帮助跨国企业应对财务合规挑战。从基础架构、数据治理到监管策略,详细对比三阶段模型与单一阶段模型的核心区别,并提供实施双轨制的实务建议,助力企业优化资本管理和税务筹划。

3c4x5z6v7b的博客 668

LeetCode刷题NO.419——甲板上的战舰

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/battleships-in-a-board 【题目描述】 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰

流牧的博客 1907

解读区块链在制药和物流管理中具备的优势

供应链透明度是建立药品弹性供应链的关键,如何更好地促进端到端的透明度,促进合作伙伴和消费者之间的信任度是当前医药和物流行业高管们关注的话题,区块链技术可以很好的帮助他们。 链集市 · 让区块链落地更简单 《区块链行业观察》专栏·第 31 篇 作者丨Shams Rahman 图片丨来源于网络 作者介绍:本文作者为Shams Rahman教授,是RMIT大学商业IT和物流学院的供应链管理教授、研究与创新部门副主任。本文中文版本由链集市团队编译整理,英文版权归原作者所有,中文转载请联系编译。 新冠肺炎疫情的爆发

CECBC的博客 623

Leetcode 419.甲板上的战舰(Battleships in a Board)

Leetcode 419.甲板上的战舰 1 题目描述(Leetcode题目链接)   给定一个二维的甲板, 请计算其中有多少艘战舰。 战舰用 'X’表示,空位用 '.'表示。 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成。 战舰只能水平或者垂直放置。换句话说,战舰只能由 1xN (1 行, N 列)组成,或者 Nx1 (N 行, 1 列)组成,其中N可以是任意大小。 两艘战舰之...

qq_39378221的博客 243

5分钟搞定:用Ollama在MacBook上本地运行Qwen3大模型(附避坑指南)

本文详细介绍了如何在MacBook上使用Ollama快速部署和运行Qwen3大模型,包括安装步骤、性能优化技巧及常见问题解决方案。Ollama作为一款轻量级工具,特别适合M系列芯片的Mac用户,支持多种量化版本,显著降低资源消耗,提升推理速度。

sql99的博客 822

OpenClaw本地部署教程

本文详细介绍了在Windows 11系统上部署OpenClaw与Ollama本地模型的完整流程。主要内容包括:硬件要求说明、Node.js环境配置、Ollama模型安装与定制(重点扩展上下文窗口至32768 tokens)、OpenClaw核心框架安装与对接、常见问题解决(如模型上下文窗口过小报错)以及可选技能扩展和飞书接入方案。部署全程约需1-2小时,强调使用备用设备或虚拟机以确保安全,并提供关键配置参数和排错命令。该方案实现了"数据不出门、推理本地化"的私有化部署目标。

技术引领业务创新 2576

leetcode 419. Battleships in a Board 战列舰的数量 + 一个新奇的循环遍历

Given an 2D board, count how many battleships are in it. The battleships are represented with ‘X’s, empty slots are represented with ‘.’s. You may assume the following rules: You receive a valid boar

JackZhangNJU的专栏 521

第1期技术: DQN算法原理及实现过程

利用神经网络近似值函数的方法表示为: V^(s,w)≈Vπ(s)q^(s,a,w)≈qπ(s,a) \hat{V}(s, w) \approx V_{\pi}(s) \\ \hat{q}(s, a, w) \approx q_{\pi}(s, a) V^(s,w)≈Vπ​(s)q^​(s,a,w)≈qπ​(s,a) 那么具体的工作过程是怎样实现的? 以及如何从端到端的过程,本文将讲解Deep Q Network(DQN, 而这正是由DeepMind于2013年和2015年分别提出的两篇论文《Playi

深度强化学习实验室:一个“开源开放、共享共进”的强化学习学术组织。 4953

leetcode419

种子填充419 class Solution { private: int dx[4] = {0,-1,0,1}; int dy[4] = {-1,0,1,0}; public: void dfs(vector<vector<char>>& board,int r,int c) { board[r][c]...

剑似生平 274

软件工程大作业——图书管理系统/图书个性化推荐与实现系统

软件工程期末大作业,图书管理系统,包含ER图、程序流程图、属性图、结构图

2401_82857325的博客 3646

DO-297标准详解:IMA系统开发与认证指南

DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,Integrated Modular Avionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代航空领域,系统复杂性逐渐增加,传统上各子系统独立运行的方式已经不适应多任务、多功能的需求。

qq_41854911的博客 1583

python leetcode 419. Battleships in a Board

无难度 按照题意解题即可 按照遍历顺序只需判断左边和上边是否相连 class Solution: def countBattleships(self, board): """ :type board: List[List[str]] :rtype: int """ m=len(board) if...

Neekity的博客 636

ICC2: 如何让CTS指定pin多长指定长度

这里create_clock不需要写到sdc里,在脚本里写就行,需要注意的是脚本里存在remove_clock_tree的话,add_buffer就要放remove_clock_tree后面,或者给guide buffer设don't touch也行。跟innovus的操作逻辑一样,如果要让tree上的某一点长长,要先考虑这个点后面的clock tree能正常balance。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?-5意味着长长5ns,相反正值意味着做短。

m0_61544122的博客 679

Leetcode题解:419. Battleships in a Board

Leetcode题解:419. Battleships in a Board难度:Medium

Littlecuter的博客 493

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LeetCode笔记:419. Battleships in a Board

计算面板中战舰的数量

Minecraft 894

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Leetcode学习笔记:#419. Battleships in a Board

Leetcode学习笔记:#419. Battleships in a Board Given an 2D board, count how many battleships are in it. The battleships are represented with 'X’s, empty slots are represented with '.'s. You may assume the ...

ccystewart的博客 144

LeetCode #419: Battleships in a Board

Problem Statement(Source) Given an 2D board, count how many different battleships are in it. The battleships are represented with ‘X’s, empty slots are represented with ‘.’s. You may assume the followi

浮生琴弦 1150

题解——Leetcode 419. Battleships in a Board 难度:Medium

Given an 2D board, count how many battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules: You receive a valid b

SYSU_Sean的博客 339

10.leetCode419: Battleships in a Board

题目: Given an 2D board, count how many battleships are in it. The battleships are represented with ‘X’s, empty slots are represented with ‘.’s. You may assume the following rules:You receive a valid bo

wjx_sky的博客 295

LeetCode //C - 419. Battleships in a Board

【代码】LeetCode //C - 419. Battleships in a Board。

Made in Code 1095

[LeetCode]419. Battleships in a Board

[LeetCode]419. Battleships in a Board题目描述思路题目中的合法输入,是必须有间隔,不能连续,可以理解为一个连通域问题,用广搜求解,但是不满足题目中的空间复杂度O(1)的要求 奇技淫巧:和合法输入有关 能作为一个合法输入的起点,那么他只能是顶点,或者这个点的左边一个点和上边一个点为空,具体代码如下BFS和GFS的解法留坑,明天补代码class Solution

Lcharon的博客 3163

LeetCode 419. Battleships in a Board 题解(C++)

Given an 2D board, count how many different battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules:

prayyojay的博客 937

leetcode 419 Battleships in a Board C++

好久不刷leetcode了,因为找了个还比较满意的实习,今天突然上来发现C++都不会写了。。。还是要保持手感呐。 这道题第一思路就是DFS,然而它给了两个要求,一个是不能改变board,第二是只用O(1)的额外空间。 先说下修改board的吧。 找到一个X之后用DFS把周围的全部变成‘.’就可以了。 符合条件的解法是找到X且上边和右边都没有X,很巧妙。 代码如下,注意边界,不然就cras

wcxdell的专栏 815

LeetCode 419. Battleships in a Board 解题报告

LeetCode 419. Battleships in a Board 解题报告

骆小坑的填坑之旅 5586

LeetCode OJ-419.Battleships in a Board

LeetCode OJ-419.Battleships in a Board题目描述 Given an 2D board, count how many battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume th

oYinGui1 639

LeetCode[419] Battleships in a Board

Given an 2D board, count how many different battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules: You receiv

wrsophia_977的博客 981
上一篇: LeetCode :Number Complement
下一篇: LeetCode:412. Fizz Buzz
Felicia_zhang
博客等级 码龄10年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值