图解LeetCode——1779. 找到最近的有相同 X 或 Y 坐标的点(难度:简单)

news2024/11/25 12:43:53

一、题目

给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处。同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, bi) 处有一个点。当一个点与你所在的位置有相同的 x 坐标或者相同的 y 坐标时,我们称这个点是 有效的 。

请返回距离你当前位置 曼哈顿距离 最近的 有效 点的下标(下标从 0 开始)。如果有多个最近的有效点,请返回下标 最小 的一个。如果没有有效点,请返回 -1 。

两个点 (x1, y1) 和 (x2, y2) 之间的 曼哈顿距离 为 abs(x1 - x2) + abs(y1 - y2) 。

二、示例

2.1> 示例 1:

【输入】x = 3, y = 4, points = [[1,2],[3,1],[2,4],[2,3],[4,4]]
【输出】2
【解释】所有点中,[3,1],[2,4] 和 [4,4] 是有效点。有效点中,[2,4] 和 [4,4] 距离你当前位置的曼哈顿距离最小,都为 1 。[2,4] 的下标最小,所以返回 2 。

2.2> 示例 2:

【输入】x = 3, y = 4, points = [[3,4]]
【输出】0
【提示】答案可以与你当前所在位置坐标相同。

2.3> 示例 3:

【输入】x = 3, y = 4, points = [[2,3]]
【输出】-1
【解释】没有 有效点。

提示:

  • 1 <= points.length <= 10^4
  • points[i].length == 2
  • 1 <= x, y, ai, bi <= 10^4

三、解题思路

根据题目描述,我们只需要通过如下4个步骤,即可获得最终结果:

步骤1】过滤掉point[i][0]不等于x并且point[i][1]不等于y的point。
步骤2】通过公式abs(x1 - x2) + abs(y1 - y2)计算曼哈顿距离dist。
步骤3】如果发现dist是目前最短距离,则更新min=distresult=i
步骤4】遍历完所有points之后,result值就是最终结果。

由于本题只需要根据题目描述模拟处理逻辑即可,所以就不再画图了。

四、代码实现

class Solution {
    public int nearestValidPoint(int x, int y, int[][] points) {
        int result = -1;
        for (int i = 0, min = Integer.MAX_VALUE; i < points.length; i++) {
            if (x != points[i][0] && y != points[i][1]) continue;
            int dist = Math.abs(x - points[i][0]) + Math.abs(y - points[i][1]);
            if (min > dist) {
                min = dist;
                result = i;
            }
        }
        return result;
    }
}

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享 。

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

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

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

相关文章

带你学习不一样的数据仓库系列-框架概念

编者按&#xff1a;本系列文章参考总结自IBM,FaceBook&#xff0c;Google等数据仓库构建英文文章&#xff0c;部分章节为直译过来&#xff0c;部分内容加上乐哥6年陌陌&#xff0c;快手等工作经验总结而来&#xff0c;让大家了解真实国外大厂数仓构建之路&#xff0c;国外同行对…

【自然语言处理概述】文本词频分析

【自然语言处理概述】文本词频分析 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云专家博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项目总负责人&#xff0c;全国高等学校计算机教学与产业实践资源建设专家…

python-百度API文字识别

最近公司通过网络查询到我们部门有人工作时间逛b站次数太多&#xff0c;这事惊动了上层领导&#xff0c;搅得人心惶惶。突然星期某信服的一套监控员工电脑的系统&#xff0c;不经一颤。想着自己也尝试玩玩电脑屏幕文字识别-----抓取关键字&#xff0c;然后将图片保存下来。 这…

Cocos 帮助更多优秀移动游戏登上 Web 舞台

作者 / Cocos 3D 内容开发引擎对于一款游戏开发引擎来说&#xff0c;关注市场风向&#xff0c;第一时间将合适的技术带给开发者永远是最重要的工作之一。作为一款国际化的 3D 引擎&#xff0c;Cocos 在全球拥有 160 万开发者&#xff0c;覆盖全球设备超 16 亿&#xff0c;曾被用…

STC 51单片机47——外部中断控制流水灯

#include <reg52.h> #include <intrins.h> //仿真与开发板一致&#xff0c;无需修改 sbit INT_0 P3^2; //开发板上&#xff0c;黑色按钮帽的按钮中的一个 unsigned char light0xfe; void delay500ms(void) //约500ms延时子程序&#xff08;12MHZ&a…

【Flink】使用CoProcessFunction完成实时对账、基于时间的双流join

文章目录零 处理函数回顾一 CoProcessFunction的使用1 CoProcessFunction使用2 实时对账&#xff08;1&#xff09;使用离线数据源&#xff08;批处理&#xff09;&#xff08;2&#xff09;使用高自定义数据源&#xff08;流处理&#xff09;二 基于时间的双流 Join1 基于间隔…

【自然语言处理(NLP)】基于预训练模型的机器阅读理解

【自然语言处理&#xff08;NLP&#xff09;】基于预训练模型的机器阅读理解 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云专家博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项目总负责人&#xff0c;全国高…

【Pandas数据处理100例】(九十二):Pandas中的transform()函数使用方法

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

Linux总结

目录学习阶段基本介绍概述Linux和UnixLinux和Windows的比较Linux目录结构远程登录Linux为什么需要远程登录LinuxXShell工具Xftp工具Linux命令关机/重启命令用户登录/注销运行级别Linux系统的7个运行级别运行级别原理帮助指令man获得帮助信息help指令执行历史命令用户管理添加用…

我的网站被攻击了,运维大佬给了我自动封禁ip的脚本。

我的网站被攻击了&#xff0c;发现友圈最近出现这种情况的还不少&#xff0c;真是神奇了&#xff0c;这事也能扎堆发生。 分享出来给大家&#xff0c;万一以后用得着呢~ 故事背景 我的一个小网站最近总是收到云监控报警&#xff0c;一个部署在4核8G单机上的小网站。 查了log…

微信开发者工具 / 反编译工具CrackMinApp 下载安装

微信开发者工具 / 反编译工具CrackMinApp 下载安装 文章目录微信开发者工具 / 反编译工具CrackMinApp 下载安装前言一、微信开发者工具下载安装二、反编译工具CrackMinApp安装三、导入反编译后的文件四、友情提示总结前言 微信开发者工具介绍&#xff1a;微信提供的微信小程序…

CVPR 2022 视频全景分割新 Benchmark:VIPSeg

关注公众号&#xff0c;发现CV技术之美今天向大家分享 CVPR 2022 论文『Large-scale Video Panoptic Segmentation in the Wild: A Benchmark』,介绍一个新的视频全景分割&#xff08;Video Panoptic Segmentation&#xff09;领域 Benchmark&#xff1a;VIPSeg。论文链接&…

GB/T 10707 橡胶燃烧性能

GB/T 10707&#xff1a;Rubber-Determination of the burning GB/T 10707&#xff1a;橡胶燃烧性能的测定 GB/T 10707橡胶燃烧性能的测定–适用范围&#xff1a; 本标准规定了在实验室环境下测定橡胶燃烧性能的两种方法&#xff1a;氧指数法和垂直燃烧法 本标准适用于在实验…

云原生丨MLOps与DevOps的区别

MLOps 是机器学习 (ML) 工程的很重要的一个部分&#xff0c;专注于简化和加速将 ML 模型交付到生产以及维护和监控它们的过程。 MLOps 涉及不同团队之间的协作&#xff0c;包括数据科学家、DevOps 工程师、IT 专家等。 MLOps 可以帮助组织创建和提高其 AI 和机器学习解决方案…

卧式钢筋切割机设计

目 录 1 绪论 1 1.1 国内外钢筋切割技术的发展状况 1 1.2 冷轧带肋钢筋的概述 2 1.2.1 钢筋的种类 2 1.2.2 冷轧带肋钢筋的表面形式 3 1.2.3 冷轧带肋钢筋基本性能 3 1.3 课题的提出和意义 4 2 对钢筋类金属材料弹塑性弯曲的分析 4 2.1 概述 5 2.2 弹塑性弯曲的变形过程 6 3 切…

再次安装torch踩过的坑

没有多余空间 我用conda 从新创建了一个项目环境&#xff0c;安装了一些基础的库。然后当我下载安装torch的时候&#xff0c;报错说安装的空间不足&#xff0c;我看了一下&#xff0c;torch确实比较大&#xff0c;一个多G&#xff0c;但是之前也没有出现过这个问题。 一开始以…

python中如何打印日志信息

日志打印方式 常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。 print()只能将日志打印至控制台&#xff0c;不推荐此方式logging模块默认将日志打印至控制台&#xff0c;也可以配置打印到指定日志文件&#xff0c;推荐使用此方式 logging模块 日志…

[附源码]JAVA毕业设计高速公路服务区管理系统(系统+LW)

[附源码]JAVA毕业设计高速公路服务区管理系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项…

二分查找 binarySearch 适合初学分析的例子

递归代码&#xff1a; #include <cstdio> #include <algorithm> #define MAX 5 using namespace std;int binarySearch(int x,int a[],int left,int right);int main() {int a[MAX]{1,3,4,5,9};printf("find %d location is %d\n",4,binarySearch(4,a,0…

Sap中的RFC接口

文章目录1 Definition2 Call process3. Communication4 Communication module5 RFC version .6 RFC and Web service7 Remote object maintain8 Call RFC9 Summary1 Definition 2 Call process 3. Communication 4 Communication module 5 RFC version . 6 RFC and Web service…