leetcode每日一题(20241205)

leetcode每日一题(20241205): 20241204的困难题还没搞明白。。然后今天还加班了回来晚,明天抽空补上

3001.捕获黑皇后需要的最少移动次数 题目描述:

bash 复制代码
现有一个下标从 1 开始的 8 x 8 棋盘,上面有 3 枚棋子。
给你 6 个整数 a 、b 、c 、d 、e 和 f ,其中:
(a, b) 表示白色车的位置。
(c, d) 表示白色象的位置。
(e, f) 表示黑皇后的位置。
假定你只能移动白色棋子,返回捕获黑皇后所需的最少移动次数。
请注意:
车可以向垂直或水平方向移动任意数量的格子,但不能跳过其他棋子。
象可以沿对角线方向移动任意数量的格子,但不能跳过其他棋子。
如果车或象能移向皇后所在的格子,则认为它们可以捕获皇后。
皇后不能移动。

这题感觉就是脑经急转弯类似的题目,我第一反应就是最多两次用车去捕捉皇后,但是也有一次就可以捕捉到的,比如车和皇后在同一列或者同一行(排除中间有象挡着车的路径的情况),还有就是象和皇后在同一对角线上(排除中间有车挡着的情况),下面看代码就是按照这个叙述来的:

java 复制代码
class Solution {
    public int minMovesToCaptureTheQueen(int a, int b, int c, int d, int e, int f) {
        if(a==e||b==f){
            if((a==e&&c==e)&&((d-b)*(d-f))<0){
                return 2;
            }
            if((b==f&&d==f)&&((c-a)*(c-e))<0){
                return 2;
            }
            return 1;
        }
        if(Math.abs(c-e)==Math.abs(d-f)){
            if(Math.abs(e-a)==Math.abs(f-b)&&Math.abs(c-a)==Math.abs(d-b)&&((a-c)*(a-e))<0)
                return 2;
            return 1;
        }
        return 2;
    }
}

加油,好好努力!!!

相关推荐
s:1031 小时前
【框架】参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构
java·开发语言
StickToForever4 小时前
第4章 信息系统架构(五)
经验分享·笔记·学习·职场和发展
南山十一少4 小时前
Spring Security+JWT+Redis实现项目级前后端分离认证授权
java·spring·bootstrap
427724005 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦6 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个6 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
万事可爱^6 小时前
HDBSCAN:密度自适应的层次聚类算法解析与实践
算法·机器学习·数据挖掘·聚类·hdbscan
欧了1118 小时前
洛谷P9240 [蓝桥杯 2023 省 B] 冶炼金属
职场和发展·蓝桥杯·洛谷·蓝桥杯大学b组c语言
大数据追光猿8 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法