【每日一题Day326】LC1222可以攻击国王的皇后 | 哈希表+模拟

简介: 【每日一题Day326】LC1222可以攻击国王的皇后 | 哈希表+模拟

可以攻击国王的皇后【LC1222】

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

给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;以及一对坐标 king ,表示白国王的位置,返回所有可以攻击国王的皇后的坐标(任意顺序)。

  • 思路
  • 将Queen的坐标一维化,记录在哈希表中
  • 从King出发,寻找8个方向中第一个Queen的位置
  • 实现
class Solution {
    public List<List<Integer>> queensAttacktheKing(int[][] queens, int[] king) {
        List<List<Integer>> res = new ArrayList<>();
        int[][] dirs = {{1, 0}, {-1, 0}, {0, -1}, {0, 1}, {1, 1}, {1, -1}, {-1, 1}, {-1, -1}};
        int N = 8;
        Set<Integer> set = new HashSet<>();
        for (int[] q : queens){
            set.add(q[0] * N + q[1]);
        }
        for (int i = 0; i < 8; i++){
            int x = king[0] + dirs[i][0], y = king[1] + dirs[i][1];
            while (x >= 0 && x < N && y >= 0 && y < N){
                if (set.contains(x * N + y)){
                    res.add(Arrays.asList(x, y));
                    break;
                }
                x += dirs[i][0];
                y += dirs[i][1];
            }
        }
        return res;
    }
}

image.png

目录
相关文章
|
弹性计算 云计算
记录下考Apsara Clouder云计算专项技能认证:云服务器ECS入门过程
Apsara Clouder云计算专项技能认证:云服务器ECS入门
37833 4
记录下考Apsara Clouder云计算专项技能认证:云服务器ECS入门过程
|
算法 计算机视觉
OpenCV(二十六):边缘检测(二)
OpenCV(二十六):边缘检测(二)
215 0
|
机器学习/深度学习 算法 TensorFlow
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
Py之imblearn:imblearn/imbalanced-learn库的简介、安装、使用方法之详细攻略
|
8月前
|
数据采集 机器学习/深度学习 人工智能
《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》
在元宇宙中,虚拟现实(VR)交互依赖于人工智能(AI)与姿态估计技术的融合,以实现沉浸式体验。然而,复杂环境下的精准识别、实时性与计算资源矛盾、数据质量与隐私困境以及语义理解偏差等问题,严重制约了其发展。复杂背景、多人互动和快速动作变化导致姿态识别困难;高精度算法虽提升准确性,但计算复杂度高,影响实时反馈;高质量数据采集与标注难,且涉及隐私风险;AI对用户意图的理解不足,影响交互流畅性。解决这些难题是实现元宇宙VR交互智能化的关键。
154 3
|
10月前
|
存储 机器学习/深度学习 人工智能
轻松实现向量搜索:探索 Elastic-Embedding-Searcher 项目
elastic-embedding-searcher 是一个基于 Elasticsearch 的向量搜索框架,简化了向量数据的存储和检索过程。通过结合 Elasticsearch 的分布式能力与向量表示,项目实现了高效、精准的相似度检索。支持多种流行的嵌入模型(如 BERT、Word2Vec),并能够处理大规模数据集。该项目适用于文本相似度检索、问答系统及多语言处理等场景,开发者可以轻松集成并实现高效的数据检索。
364 2
|
存储 监控 安全
【实战经验】记录项目开发常见的8个难题
风沙席地起,战马踏风归!
610 119
|
10月前
|
人工智能 IDE 小程序
不写一行代码,通义灵码 5 分钟“手撕”年会抽奖程序
年会中的抽奖环节不可或缺,但每年为了选择合适的抽奖小程序,团队往往需要投入大量时间和精力。然而,抽奖结束后,参与者通常只记得自己是否中奖,其他细节多被遗忘。在 AI 技术日益成熟的今天,如何打造一个既高效又有技术含量的抽奖应用呢?今天,就让我们跟随通义灵码,仅用 5 分钟现场手撕一个抽奖应用吧!
|
监控 安全 搜索推荐
新手指南:Google邮箱注册全过程步骤教学
对于从事外贸、需要与外国客户或朋友沟通的小伙伴来说,拥有一个Google账号(也就是Gmail账号,下文统一用Google邮箱来表述)至关重要!
|
机器学习/深度学习 测试技术 计算机视觉
【计算机视觉 | ViT-G】谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率
谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率
|
Linux C++
linux下串口的阻塞和非阻塞操作
有两个可以进行控制串口阻塞性(同时控制read和write):一个是在打开串口的时候,open函数是否带O_NDELAY;第二个是可以在打开串口之后通过fcntl()函数进行控制。 阻塞的定义:        对于read,block指当串口输入缓冲区没有数据的时候,read函数将会阻塞在这里,移植到串口输入缓冲区中有数据可读取,read读到了需要的字节数之后,返回值为读到的字节数; 对于write,block指当串口输出缓冲区满,或剩下的空间小于将要写入的字节数,则write将阻塞,一直到串口输出缓冲区中剩下的空间大于等于将要写入的字节数,执行写入操作,返回写入的字节数。
1810 0