​力扣解法汇总1779. 找到最近的有相同 X 或 Y 坐标的点

news/2024/7/5 10:45:32

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你两个整数 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) 。

示例 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:

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

示例 3:

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

提示:

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

解题思路:

* 解题思路:
* 遍历points,如果是有效的的点的话,则计算其曼哈顿距离。
* 如果曼哈顿距离小于之前的最小值,则更新最小下标。
 

代码:

public class Solution1779 {

    public int nearestValidPoint(int x, int y, int[][] points) {
        int index = -1;
        int minAbs = Integer.MAX_VALUE;
        for (int i = 0; i < points.length; i++) {
            int[] point = points[i];
            int a = point[0];
            int b = point[1];
            if (a == x || b == y) {
                int abs = Math.abs(a - x) + Math.abs(b - y);
                if (abs < minAbs) {
                    minAbs = abs;
                    index = i;
                }
            }
        }
        return index;
    }
}


http://lihuaxi.xjx100.cn/news/295611.html

相关文章

ios照片误删怎么恢复,iphone已经删除的照片怎么恢复

苹果手机里面的重要照片被删除了&#xff0c;相信很多人都比较着急&#xff0c;想要想办法找回来。ios照片误删怎么恢复&#xff1f; 方法1.通过“最近删除”恢复照片 苹果删除的照片如何恢复&#xff1f;一般情况下&#xff0c;从苹果手机刚删除的照片会暂存在“最近删除”这…

视频编解码 — SVC可伸缩性

目录 SVC分层 时域SVC 空域SVC 在一对多的情况下&#xff0c;根据每个接收端的带宽不同&#xff0c;灵活调整发送码率 SVC分层 第0层&#xff0c;最底层&#xff0c;可以独立进行编解码&#xff0c;不依赖第1&#xff0c;第2层第1层&#xff0c;依赖于第0层第2层&#xff…

dreamweaver网页设计作业制作 学生个人网页猫眼电影 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

两直线垂直,斜率乘积为-1的证明

老早以前在学习初等函数的时候&#xff0c;线性函数中的两直线y m0x b0, y m1x b1如果垂直&#xff0c;则有结论两条直线的斜率乘积为-1即m0*m1 -1&#xff0c;以前也只是拿来用&#xff0c;没有证明过。最近在学图形学的时候&#xff0c;突然想起了这个点&#xff0c;因此…

Spring Security-全面详解(学习总结---从入门到深化)

目录 Spring Security介绍 Spring Security认证_项目搭建 Spring Security认证_内存认证 Spring Security认证_UserDetailsService Spring Security认证_数据库认证 Spring Security认证_PasswordEncoder Spring Security认证_自定义登录页面 Spring Security认证_会…

运维问题解决常用命令

这里写自定义目录标题标题mysqlopenLDAPmongodb服务防火墙查看防火墙状态修改tomcat的端口修改主机名标题mysql 查看mysql进程&#xff1a;ps -ef|grep mysql启动mysql命令行&#xff1a;service mysql start停用mysql命令行:service mysql stop重启mysql命令行&#xff1a;se…

【毕业设计】1-1Matlab小电流接地系统的建模与单相故障的仿真分析(仿真工程文件+结果图+论文+PPT)

【毕业设计】1-1Matlab小电流接地系统的建模与单相故障的仿真分析&#xff08;仿真工程文件结果图答辩论文答辩PPT&#xff09; 文章目录【毕业设计】1-1Matlab小电流接地系统的建模与单相故障的仿真分析&#xff08;仿真工程文件结果图答辩论文答辩PPT&#xff09;任务书设计说…

实习面试复习

商汤-上海 IRDC-算法开发实习生 根据面经复习 手写Conv2d BN,LN/LSTM/GRU/Transformer一些基础 手写conv2d def corr2d(X, K):n, m X.shapeh, w K.shapeY torch.zeros((n - h 1, m - w 1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i, j] (X[i:i h, j…