1222. 可以攻击国王的皇后

目录

【算法题】寻找能够直接攻击国王的黑皇后 —— 解题思路与代码实现

题目描述

解题分析

8个方向

解题方法

1. 使用集合存储皇后位置

2. 遍历8个方向

3. 返回结果

代码实现(Python)

代码解析

时间复杂度与空间复杂度分析

示例说明

小结


【算法题】寻找能够直接攻击国王的黑皇后 —— 解题思路与代码实现

题目描述

在一个 8×8 的国际象棋棋盘上,棋盘的下标从 0 开始(即坐标范围为 0~7)。棋盘上有若干个黑皇后(Queen)和一个白国王(King),给出黑皇后的坐标数组 queens 和国王的坐标 king

  • queens 是一个二维整数数组,每个元素 queens[i] = [x, y] 表示第 i 个黑皇后的位置。
  • king = [x, y] 表示白国王的位置。

黑皇后可以沿水平方向、垂直方向和两个对角线方向任意距离攻击。请返回所有能够直接攻击白国王的黑皇后坐标,能够直接攻击的意思是,从国王出发,沿上述8个方向找到的第一个黑皇后(如果有的话)。返回的结果可以是任意顺序。


解题分析

皇后在国际象棋中是攻击力最强的棋子之一,它可以沿行、列以及对角线方向攻击任意距离内的敌方棋子。给定国王位置,我们需要判断从国王出发的8个方向上,是否存在皇后,并且该皇后是该方向上第一个遇到的棋子。

换句话说,题目的核心在于沿国王所在位置向8个方向遍历,找到离国王最近的皇后

8个方向

考虑二维矩阵坐标的增减:

方向

dx

dy

说明

+1

0

x 增加,y 不变

-1

0

x 减少,y 不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值