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

Leecode刷题C语言之可以被进一步捕获的棋子数

执行结果:通过

执行用时和内存消耗如下:

 

 

 

代码如下: 

int numRookCaptures(char** board, int boardSize, int* boardColSize) {int cnt = 0, st = 0, ed = 0;int dx[4] = {0, 1, 0, -1};int dy[4] = {1, 0, -1, 0};for (int i = 0; i < 8; ++i) {for (int j = 0; j < 8; ++j) {if (board[i][j] == 'R') {st = i;ed = j;break;}}}for (int i = 0; i < 4; ++i) {for (int step = 0; ; ++step) {int tx = st + step * dx[i];int ty = ed + step * dy[i];if (tx < 0 || tx >= 8 || ty < 0 || ty >= 8 || board[tx][ty] == 'B') {break;}if (board[tx][ty] == 'p') {cnt++;break;}}}return cnt;
}

解题思路:

这段代码的目的是计算在国际象棋棋盘上,给定一个局面,一个车(Rook)能够捕获(将军)的白方或黑方的兵(pawn,用'p'表示)的数量。代码的实现思路如下:

  1. 初始化变量
    • cnt:用于记录车能够捕获的兵的数量,初始化为0。
    • sted:用于存储找到的车的行和列位置,初始化为0。
    • dxdy:用于表示四个方向的数组,dx表示行变化(0, 1, 0, -1),dy表示列变化(1, 0, -1, 0),这四个方向分别是右、下、左、上。
  2. 找到车的位置
    • 遍历整个棋盘(8x8),寻找字符为'R'的位置,即车的位置。找到后,将车的行和列位置分别存储在sted中,并退出循环。
  3. 计算捕获的兵的数量
    • 遍历四个方向(右、下、左、上),对每个方向:
      • 使用一个步长变量step,从车的位置开始,沿当前方向逐步移动。
      • 计算新的位置(tx, ty),即tx = st + step * dx[i]ty = ed + step * dy[i]
      • 检查新位置是否越界或遇到黑方棋子('B'),如果是,则停止当前方向的搜索。
      • 如果新位置是兵('p'),则增加cnt(表示捕获了一个兵),并停止当前方向的搜索。
  4. 返回结果
    • 返回cnt,即车能够捕获的兵的总数。

注意

  • 该代码假设棋盘上只有一个车('R'),并且只计算该车能捕获的兵的数量。
  • 棋盘上的字符'B'代表黑方棋子(包括黑方的车和兵等),'p'代表兵(不考虑颜色,只关心是兵即可),'R'代表车。
  • 棋盘的大小固定为8x8,即boardSize为8,且每行的列数相同,存储在boardColSize中,但在这个函数中并未直接使用boardColSize,因为棋盘大小是固定的。

相关文章:

Leecode刷题C语言之可以被进一步捕获的棋子数

执行结果:通过 执行用时和内存消耗如下&#xff1a; 代码如下&#xff1a; int numRookCaptures(char** board, int boardSize, int* boardColSize) {int cnt 0, st 0, ed 0;int dx[4] {0, 1, 0, -1};int dy[4] {1, 0, -1, 0};for (int i 0; i < 8; i) {for (int j…...

【算法】数组中,求K个最大值

已知&#xff1a;数组 [8, 9, 15, 20, 3, 5, 7, 2, 6]&#xff0c;求第8个最大值是哪个值&#xff1f; function quickSort(arr, targetIndex, start) {if (arr.length < 1) return arr[0];let left [];let right [];const mid Math.floor(arr.length / 2);const midNum…...

Postman自定义脚本Pre-request-script以及Test

这两个都是我们进行自定义script脚本的地方&#xff0c;分别是在请求执行的前后运行。 我们举两个可能经常运用到的场景。 (一)请求A先执行&#xff0c;请求B使用请求A响应结果作为参数。如果我们不用自定义脚本&#xff0c;可能得先执行请求A&#xff0c;然后手动复制响应结果…...

Lua中实现HTTP请求的User-Agent自定义

User-Agent&#xff08;用户代理&#xff09;是HTTP请求头的一部分&#xff0c;用于描述发出请求的客户端的信息&#xff0c;包括浏览器类型、版本和操作系统等。自定义User-Agent对于开发者来说是一个重要的功能&#xff0c;它可以帮助服务器识别请求来源&#xff0c;也可以模…...

工业节能水泵如何节能?

在现代工业生产中&#xff0c;水泵作为一种重要的流体输送设备&#xff0c;广泛应用于各个领域。无论是在制造业、化工、能源&#xff0c;还是在污水处理、灌溉等行业&#xff0c;水泵在保证生产流程顺畅的同时&#xff0c;也消耗了大量的能源。 一、工业水泵系统的能耗现状 …...

第四篇:k8s 理解Service工作原理

什么是service&#xff1f; Service是将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。 简单来说K8s提供了service对象来访问pod。我们在《k8s网络模型与集群通信》中也说过k8s集群中的每一个Pod&#xff08;最小调度单位&#xff09;都有自己的IP地址&#xff0c;都…...

P3131 [USACO16JAN] Subsequences Summing to Sevens S

题目描述 Farmer Johns NN cows are standing in a row, as they have a tendency to do from time to time. Each cow is labeled with a distinct integer ID number so FJ can tell them apart. FJ would like to take a photo of a contiguous group of cows but, due to a…...

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…...

【CKA】Kubernetes(k8s)认证之CKA考题讲解

CKA考题讲解 0.考试101 0.1 kubectl命令⾃动补全 在 bash 中设置当前 shell 的⾃动补全&#xff0c;要先安装 bash-completion 包。 echo "source <(kubectl completion bash)" >> ~/.bashrc还可以在补全时为 kubectl 使⽤⼀个速记别名&#xff1a; al…...

android WebRtc 无法推流以及拉流有视频无声音问题

最近在开发使用WebRtc进行视频通话和语音通话&#xff0c;我使用的设备是MTK的手机&#xff0c;期间后台的技术人员几乎没法提供任何帮助&#xff0c;只有接口和测试的web端&#xff0c;有遇到不能推流。推流成功网页端有画面有声音&#xff0c;但是安卓端有画面&#xff0c;没…...

【5G】Spectrum 频谱

频谱是移动运营商的关键资产&#xff0c;可用的频谱是定义移动网络容量和覆盖范围的重要因素。本章讨论了5G的不同频谱选项、它们的特性以及5G早期部署阶段的预期频谱。5G是首个旨在利用大约400 MHz到90 GHz之间所有频段的移动无线系统。5G还设计用于在许可、共享和非许可频谱带…...

Flink学习连载文章11--双流Join

双流 Join 和两个流合并是不一样的 两个流合并&#xff1a;两个流变为 1 个流 union connect 双流 join: 两个流 join&#xff0c;其实这两个流还是原来的&#xff0c;只是满足条件的数据会变为一个新的流。 可以结合 sql 语句中的 union 和 join 的区别。 在离线 Hive 中&…...

R语言 | 峰峦图 / 山脊图

目的&#xff1a;为展示不同数据分布的差异。 1. ggplot2 实现 # 准备数据 datmtcars[, c("mpg", "cyl")] colnames(dat)c("value", "type") head(dat) # value type #Mazda RX4 21.0 6 #Mazda RX4 Wag …...

16-03、JVM系列之:内存与垃圾回收篇(三)

JVM系列之&#xff1a;内存与垃圾回收篇(三) ##本篇内容概述&#xff1a; 1、执行引擎 2、StringTable 3、垃圾回收一、执行引擎 ##一、执行引擎概述 如果想让一个java程序运行起来&#xff0c;执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。 简…...

解决Windows与Ubuntu云服务器无法通过Socket(udp)通信问题

今天在写Socket通信代码的时候&#xff0c;使用云服务器自己与自己通信没有问题&#xff0c;但是当我们把客户端换为Windows系统的时候却无法发送信息到Linux当中&#xff0c;耗时一上午终于搞定了&#x1f612;。 问题&#xff1a; 如上图&#xff0c;当我在windows的客户端…...

Mysql 中的锁机制

在 MySQL 中&#xff0c;锁是一种机制&#xff0c;用于管理并发访问以确保数据的一致性和完整性。MySQL 支持多种类型的锁&#xff0c;主要分为以下几类&#xff1a; 全局锁&#xff1a;锁定整个数据库&#xff0c;适用于备份等操作&#xff0c;期间禁止所有其他操作。表级锁&…...

12月第1周AI资讯

阅读时间:3-4min 更新时间:2024.12.2-2024.12.6 目录 OpenAI CEO Sam Altman 预告“12天OpenAI”系列活动 腾讯HunyuanVideo:130亿参数的开源视频生成模型 李飞飞的World Labs发布空间智能技术预览版 中科院联手腾讯打造“AI带货王”AnchorCrafter OpenAI CEO Sam Alt…...

【音频识别】数据集合集!

本文将为您介绍经典、热门的数据集&#xff0c;希望对您在选择适合的数据集时有所帮助。 1 Chenyme-AAVT 更新时间&#xff1a;2024-08-23 访问地址: GitHub 描述&#xff1a; 这是一个全自动&#xff08;音频&#xff09;视频翻译项目。利用Whisper识别声音&#xff0c;AI…...

Nginx核心配置详解

一、配置文件说明 nginx官方帮助文档&#xff1a;nginx documentation nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;nginx.conf子配置文件: include conf.d/*.conffastcgi&#xff0c; uwsgi&#xff0c;scgi 等协议相关的配置文件mime.types&#xff1a;…...

智能工厂的设计软件 用“力force”的性质构造智能体原型

本文要点 在“智能工厂的设计软件”中 我将对力的研究分为三个领域&#xff1a;经典力学&#xff0c;相对论力学和量子力学&#xff0c;每个研究领域都涉及到force自身性质所具有两个侧面&#xff1a; 明示高度内聚的不可观测的内部表征-“互相性”&#xff08;哲学性质/哲学…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

npm安装electron下载太慢,导致报错

npm安装electron下载太慢&#xff0c;导致报错 背景 想学习electron框架做个桌面应用&#xff0c;卡在了安装依赖&#xff08;无语了&#xff09;。。。一开始以为node版本或者npm版本太低问题&#xff0c;调整版本后还是报错。偶尔执行install命令后&#xff0c;可以开始下载…...

ubuntu清理垃圾

windows和ubuntu 双系统&#xff0c;ubuntu 150GB&#xff0c;开发用&#xff0c;基本不装太多软件。但是磁盘基本用完。 1、查看home目录 sudo du -h -d 1 $HOME | grep -v K 上面的命令查看$HOME一级目录大小&#xff0c;发现 .cache 有26GB&#xff0c;.local 有几个GB&am…...

多模态学习路线(2)——DL基础系列

目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization&#xff08;RMSNorm&#xff09; 二、激活函数 1. Sigmoid激活函数&#xff08;二分类&…...