LeetCode 1222. 可以攻击国王的皇后(set)

1. 题目

在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。

「黑皇后」在棋盘上的位置分布用整数坐标数组 queens 表示,「白国王」的坐标用数组 king 表示。

「黑皇后」的行棋规定是:横、直、斜都可以走,步数不受限制,但是,不能越子行棋。

请你返回可以直接攻击到「白国王」的所有「黑皇后」的坐标(任意顺序)。

示例 1:
在这里插入图片描述

输入:queens = [[0,1],[1,0],[4,0],[0,4],[3,3],[2,4]], 
king = [0,0]
输出:[[0,1],[1,0],[3,3]]
解释: 
[0,1] 的皇后可以攻击到国王,因为他们在同一行上。 
[1,0] 的皇后可以攻击到国王,因为他们在同一列上。 
[3,3] 的皇后可以攻击到国王,因为他们在同一条对角线上。 
[0,4] 的皇后无法攻击到国王,因为她被位于 [0,1] 的皇后挡住了。 
[4,0] 的皇后无法攻击到国王,因为她被位于 [1,0] 的皇后挡住了。 
[2,4] 的皇后无法攻击到国王,因为她和国王不在同一行//对角线上。

示例 2:
在这里插入图片描述

输入:queens = [[0,0],[1,1],[2,2],[3,4],[3,5],[4,4],[4,5]], 
king = [3,3]
输出:[[2,2],[3,4],[4,4]]

示例 3:
在这里插入图片描述

输入:queens = [[5,6],[7,7],[2,1],[0,7],[1,6],[5,1],[3,7],[0,3],[4,0],[1,2],[6,3],[5,0],[0,4],[2,2],[1,1],[6,4],[5,4],[0,0],[2,6],[4,5],[5,2],[1,4],[7,5],[2,3],[0,5],[4,2],[1,0],[2,7],[0,1],[4,6],[6,1],[0,6],[4,3],[1,7]], king = [3,4]
输出:[[2,3],[1,4],[1,6],[3,7],[4,3],[5,4],[4,5]]
提示:
1 <= queens.length <= 63
queens[0].length == 2
0 <= queens[i][j] < 8
king.length == 2
0 <= king[0], king[1] < 8
一个棋盘格上最多只能放置一枚棋子。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/queens-that-can-attack-the-king
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 遍历8个方向,从king开始走,遇到皇后或者边界,break,查找下一个方向
class Solution {
public:vector<vector<int>> queensAttacktheKing(vector<vector<int>>& queens, vector<int>& king) {vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};int i,j,k;set<pair<int,int>> s;vector<vector<int>> pos;for(i = 0; i < queens.size(); i++)s.insert(make_pair(queens[i][0], queens[i][1]));//查找集合for(k = 0; k < dir.size(); ++k)//8个方向{i = king[0];j = king[1];//起点while(1){i += dir[k][0];j += dir[k][1];//走起if(!(i>=0 && i<8 && j>=0 && j<8))break;//出界else{if(s.count(make_pair(i,j))){	//在界内,找到皇后pos.push_back({i,j});break;}}}}return pos;}
};

12 ms 9.5 MB

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

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

相关文章

win10开始菜单添加磁贴_Windows 10开始菜单磁贴美化教程

前言我们都知道&#xff0c;Windows 10在美化上可没有下足功夫&#xff0c;尤其是开始菜单的磁贴上。几年前&#xff0c;我们还觉得这种磁贴设计在大众面前焕然一新&#xff0c;可是近几年来&#xff0c;也没见磁贴有什么起色&#xff0c;除了不能自定义背景颜色外&#xff0c;…

【Text_Classification】学习到的语法知识

1. 任务 1.1 字典中每个种类的准确率 分母&#xff1a; 首先计算每个种类的总数&#xff01; for value in label:# get(value, num)函数的作用是获取字典中value对应的键值, num0指示初始值大小。label_cout[value] label_cout.get(value, 0) 1label_acc[value] label_a…

%求余数 rand随机数

//getSeconds() 0-59number new Date().getSeconds() % 3 1; //随机数&#xff0c;从1到3//0-9之间 Math.random()*10var num1 Math.round(Math.random()*10) % 3 随机数&#xff0c;从0到2 任何数%3 得到 0 1 2 任何数%4 得到 0 1 2 3转载于:https://www.cnblogs.com/reo…

LeetCode 1217. 玩筹码(脑筋急转弯)

1. 题目 数轴上放置了一些筹码&#xff0c;每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一&#xff08;不限操作次数&#xff0c;0 次也可以&#xff09;&#xff1a; 将第 i 个筹码向左或者右移动 2 个单位&#xff0c;代价为 0。将第 i 个筹…

windows脚本命令闪退_NCL2Python|windows系统安装Pyngl和Pynio

自从NCL停更之后&#xff0c;python的知名度都不断提高了&#xff0c;我也开始了python学习之旅&#xff0c;但是还没开始&#xff0c;就被如何安装Pyngl和Pynio给困住了。网上和官网给的教程都是Linux系统或者OS系统&#xff0c;有老板服务器的同学压根不用担心这个问题&#…

【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录

使用的是Paddle框架2.0版本 网页&#xff1a; https://github.com/PaddlePaddle/PaddleHub/tree/release/v2.1/demo/text_classification 也可以在其平台上利用公开数据集跑一跑&#xff1a; 网页&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail/2390146?cont…

WCF分布式开发步步为赢系列

众所周知&#xff0c;系统间的低耦合一直是大型企业应用系统集成追寻的目标&#xff0c;SOA面向服务架构的 出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则。SOA如此炙手可热&#xff0c;各大厂商都推出了自己的中间件产品&#xff0c;比…

LeetCode 1207. 独一无二的出现次数

1. 题目 给你一个整数数组 arr&#xff0c;请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的&#xff0c;就返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;arr [1,2,2,1,1,3] 输出&#xff1a;true 解释&#xff1a…

keil stm32标准库放在哪里_STM32之PWM

脉冲宽度调制脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效且应用十分广泛的技术&#xff0c;例如直流电机的控制、开关电源的输出调制、信号的传递也离不开脉冲宽度调制。我们接下将要讨论的便是单片机中PWM的产生与应用。在STM32单片机中&#xf…

(二十五)【NIPS 2017】Prototypical Networks for Few-shot Learning

完全参考博文 用来记录和学习 Introduction 原型网络的思路非常简单&#xff1a;对于分类问题&#xff0c;原型网络将其看做在语义空间中寻找每一类的原型中心。 原型中心&#xff1a; 针对Few-shot的任务定义&#xff0c;原型网络训练时学习如何拟合中心。学习一个度量函数…

LeetCode 1093. 大样本统计

1. 题目 我们对 0 到 255 之间的整数进行采样&#xff0c;并将结果存储在数组 count 中&#xff1a;count[k] 就是整数 k 的采样个数。 我们以 浮点数 数组的形式&#xff0c;分别返回样本的最小值、最大值、平均值、中位数和众数。其中&#xff0c;众数是保证唯一的。 我们…

python 时间函数 毫秒_利用python进行播放音频与录音,骚操作!

现如今&#xff0c;我们的学习知识的渠道越来越多&#xff0c;我们也要充分利用自己的感官去汲取知识。当我们看书累的时候&#xff0c;我们完全可以听过听书来学习&#xff0c;这样的平台也很多&#xff0c;pk 哥之前也写过关于下载喜马拉雅音频爬虫的方法&#xff1a;Python爬…

2009岁末之复用系统框架(B/S)

目的 好久没有写博赚点了&#xff0c;最近一直在忙着写基础的框架&#xff0c;为以后的职业发展多点筹码&#xff0c;以前写过C/S&#xff0c;但是现在的应用趋于浏览器&#xff0c;所以匆忙之间利用工作之余写了点东西。本人的水平有限&#xff0c;希望能博得大家一瞥。 技术 …

一建机电实务教材电子版_2020一建教材+章节习题+新旧教材对比【全科】免费送...

2020一建《各科》电子教材2020一建《工程法规》电子教材2020一建《工程经济》电子教材2020一建《公路实务》电子教材2020一建《机电实务》电子教材2020一建《建筑实务》电子教材2020一建《市政实务》电子教材2020一建《水利实务》电子教材2020一建《项目管理》电子教材2020一建…

LeetCode 1189. “气球” 的最大数量

1. 题目 给你一个字符串 text&#xff0c;你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”&#xff08;气球&#xff09;。 字符串 text 中的每个字母最多只能被使用一次。 请你返回最多可以拼凑出多少个单词 “balloon”。 示例 1&#xff1a; 输入&#xff1…

记录F1分数和召回率

内容 参考博文&#xff1a; F1分数以及micro、macro区别 对于上面说的矩阵是不是挺懵的&#xff0c;它的真名叫混下矩阵&#xff0c;看下面 混淆矩阵 所有正确的预测结果都在对角线上&#xff0c;所以从混淆矩阵中可以很方便直观的看出哪里有错误&#xff0c;因为他们呈现在对…

《大话设计模式》读书笔记-建造者模式

// 建造者类 class PersonDirector { private PersonBuilder pb; public PersonDirector(PersonBuilder pb) { this.pb pb; } public void CreatePerson() { pb.BuildHead(); pb.BuildBody(); …

LeetCode 1170. 比较字符串最小字母出现频次

1. 题目 我们来定义一个函数 f(s)&#xff0c;其中传入参数 s 是一个非空字符串&#xff1b; 该函数的功能是统计 s 中&#xff08;按字典序比较&#xff09;最小字母的出现频次。 例如&#xff0c;若 s “dcce”&#xff0c;那么 f(s) 2&#xff0c;因为最小的字母是 “c”…

讯达机器人_科大讯飞新品频发完善场景布局“双11”斩获三大平台25项冠军

11月12日&#xff0c;科大讯飞发布”双11”战报&#xff0c;C端产品兑现AI红利实现可持续增长&#xff0c;一举斩获京东、天猫、苏宁易购三大平台25项冠军。11月1日至11月11日&#xff0c;销售额同比增长56% 。目前&#xff0c;科大讯飞消费者业务连续三年保持营收超过30%的增速…

【Eclipse 插件】Implementors

当追踪方法代码时&#xff0c;Eclipse默认是转到方法的接口类&#xff0c;而接口中是只有方法名称没有具体的实现代码&#xff0c;此插件提供了追踪到具体实现类的实现代码的功能。官方地址 转载于:https://www.cnblogs.com/derod/archive/2010/01/14/1647509.html