【教3妹学编程-算法题】捕获黑皇后需要的最少移动次数

瑟瑟发抖

3妹:2哥,新年好鸭~
2哥 : 新年好,3妹这么早啊
3妹:是啊,新年第一天要起早,这样就可以起早一整年
2哥 :得,我还不了解你,每天晒到日上三竿
3妹:嘿嘿嘿嘿,一年是有300多天起的比较晚~
2哥:3妹,过完年什么时候回来啊
3妹:最少也要初七吧,好不容易回家一趟多陪陪父母。
2哥:好吧,回家也也要记得每天刷题啊,今天有一道“最少”的题目, 让我们先做一下吧~

吃瓜

题目:

现有一个下标从 1 开始的 8 x 8 棋盘,上面有 3 枚棋子。

给你 6 个整数 a 、b 、c 、d 、e 和 f ,其中:

(a, b) 表示白色车的位置。
(c, d) 表示白色象的位置。
(e, f) 表示黑皇后的位置。
假定你只能移动白色棋子,返回捕获黑皇后所需的最少移动次数。

请注意:

车可以向垂直或水平方向移动任意数量的格子,但不能跳过其他棋子。
象可以沿对角线方向移动任意数量的格子,但不能跳过其他棋子。
如果车或象能移向皇后所在的格子,则认为它们可以捕获皇后。
皇后不能移动。

示例 1:
image.png

输入:a = 1, b = 1, c = 8, d = 8, e = 2, f = 3
输出:2
解释:将白色车先移动到 (1, 3) ,然后移动到 (2, 3) 来捕获黑皇后,共需移动 2 次。
由于起始时没有任何棋子正在攻击黑皇后,要想捕获黑皇后,移动次数不可能少于 2 次。
示例 2:
image.png
输入:a = 5, b = 3, c = 3, d = 4, e = 5, f = 2
输出:1
解释:可以通过以下任一方式移动 1 次捕获黑皇后:

  • 将白色车移动到 (5, 2) 。
  • 将白色象移动到 (5, 2) 。

提示:

1 <= a, b, c, d, e, f <= 8
两枚棋子不会同时出现在同一个格子上。

思路:

思考
设 nums\textit{nums}nums 的异或和为 sss。

分类讨论:

如果车能直接攻击到皇后,答案是 1。
如果象能直接攻击到皇后,答案是 1。
如果车被象挡住,那么移走象,车就可以攻击到皇后,答案是 2。小知识:这在国际象棋中称作「闪击」。
如果象被车挡住,那么移走车,象就可以攻击到皇后,答案是 2。
如果车不能直接攻击到皇后,那么车可以水平移动或者垂直移动,其中一种方式必定不会被象挡住,可以攻击到皇后,答案是 2。
对于车,如果和皇后在同一水平线或者同一竖直线,且中间没有象,那么就可以直接攻击到皇后。

java代码:

public class Solution {public int minMovesToCaptureTheQueen(int a, int b, int c, int d, int e, int f) {if (a == e && (c != e || ok(b, d, f)) ||b == f && (d != f || ok(a, c, e)) ||c + d == e + f && (a + b != e + f || ok(c, a, e)) ||c - d == e - f && (a - b != e - f || ok(c, a, e))) {return 1;}return 2;}private boolean ok(int l, int m, int r) {return m < Math.min(l, r) || m > Math.max(l, r);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins实战:docker compose 搭建Jenkins

目录 一、文件准备二、安装三、访问与效果展示 一、文件准备 进入/home/docker目录&#xff0c;新建docker-compose-jenkins.yml文件&#xff0c;内容如下&#xff1a; version: 3.0 services:jenkins:image: jenkins/jenkinscontainer_name: jenkinsports:- "8090:8080…

【计算机网络】FTP 文件传输协议

同样使用TCP 但使用了两个并行的TCP 控制链接 control connection 带外 out-of-band 传送的数据链接 data connection 对于FTP而言&#xff0c;控制链接贯穿了整个用户会话期间&#xff0c;数据链接每传输一个文件就有一次建立FTP是有状态&#xff08;state&#xff09;的&…

华为机考入门python3--(12)牛客12-字符串反转

分类&#xff1a;字符串 知识点&#xff1a; 字符串是否为空 if not my_str 字符串逆序 my_str[::-1] 题目来自【牛客】 def reverse_string(s): # 判断字符串是否为空或只包含空格 if not s.strip(): return "" # 使用Python的切片语法反转字符串 re…

Vue.js2+Cesium1.103.0 十五、计算方位角

Vue.js2Cesium1.103.0 十五、计算方位角 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"/> </template><script> /* eslint-disable no-undef */ /* eslint-disable new-cap */ /* eslint-disable n…

VueCLI核心知识3:全局事件总线、消息订阅与发布

这两种方式都可以实现任意两个组件之间的通信 1 全局事件总线 1.安装全局事件总线 import Vue from vue import App from ./App.vueVue.config.productionTip false/* 1.第一种写法 */ // const Demo Vue.extend({}) // const d new Demo()// Vue.prototype.x d // 把Dem…

【数据结构】二叉树根节点到特定节点路径(C语言版)

二叉树——根节点到特定节点路径查找 一、思路二、代码实现 一、思路 使用二叉链表创建的二叉树&#xff0c;这里我的思路是用链栈来存放找寻二叉树特定节点中&#xff0c;用来存放节点元素 个人思路&#xff1a;创建链栈&#xff0c;遍历二叉树并把路径中节点元素存放到栈中&…

华为机考入门python3--(13)牛客13-句子逆序

分类&#xff1a;列表 知识点&#xff1a; 列表逆序&#xff08;和字符串逆序是一样的&#xff09; my_list[::-1] 题目来自【牛客】 def reverse_sentence(sentence): # 将输入的句子分割words sentence.split() # 将单词逆序排列 words words[::-1] # 将单词用空…

python小项目----多重剪切板

代码&#xff1a; import shelve,pyperclip,sysimport mcbmcbShelfshelve.open(mcb)# 保存剪切板内容 if len(sys.argv)3 and sys.argv[1].lower()save:#剪切板的内容保存到第三个参数中mcbShelf[sys.argv[2]]pyperclip.paste()print("你的剪切板中的内容将被保存到mcbSh…

[Doris] Doris的安装和部署 (二)

文章目录 1.安装要求1.1 Linux操作系统要求1.2 软件需求1.3 注意事项1.4 内部端口 2.集群部署2.1 操作系统安装要求2.2 下载安装包2.3 解压2.4 配置FE2.5 配置BE2.6 添加BE2.7 FE 扩容和缩容2.8 Doris 集群群起脚本 3.图形化 1.安装要求 1.1 Linux操作系统要求 1.2 软件需求 1…

【MySQL】学习约束和使用图形化界面创建表

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-iqtbME2KmWpQFQSt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

Python数学建模之回归分析

1.基本概念及应用场景 回归分析是一种预测性的建模技术&#xff0c;数学建模中常用回归分析技术寻找存在相关关系的变量间的数学表达式&#xff0c;并进行统计推断。例如&#xff0c;司机的鲁莽驾驶与交通事故的数量之间的关系就可以用回归分析研究。回归分析根据变量的…

小结与数字的魅力的开篇

小结 本系列主要介绍了一些排序算法&#xff0c;包括冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序、计数排序、桶排序和基数排序。 排序算法本身并不难&#xff0c;但其涉及的知识点却星罗棋布&#xff0c;其变化莫测的思路更让人难以捉摸&am…