力扣每日一题:1779. 找到最近的有相同 X 或 Y 坐标的点【思维水题】
创始人
2024-04-15 04:53:26
0

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

分析:题目给出了一个一个坐标x,y,还有一个坐标数组points,在求距离的时候我们得先判断一下该点是不是有效的,当一个点与你所在的位置有相同的 x 坐标或者相同的 y 坐标时,我们称这个点是 有效的 。x==points【i】【0】|| y==points【i】【1】 ,我们定义一个变量minR = Integer.MAX_VALUE,然后去求出距离的最小值,最后判断如果minR == Integer.MAX_VALUE

就返回-1 ,否则返回最小值对应的坐标

AC代码:

class Solution {public int nearestValidPoint(int x, int y, int[][] points) {int minR = Integer.MAX_VALUE ;int index =0 ; int n =points.length;for(int i =0 ;i num){minR = num ; index = i ; }}}return minR==Integer.MAX_VALUE?-1:index ;}
}

相关内容

热门资讯

java线程中断 interr... 1.  线程的状态: new -> 创建完线程,但是还没有启动runna...
16 | 如何做好面试后的复盘... 前言 前言:将经验转换为能力,就需要从经历的事情上总结复盘。 文章目...
Python基础学习七 类 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Py...
day 19 暴力枚举 注意:用long long 存答案P2241 统计方形(数据加强版&#x...
嵌入式理论复习题库(期末考试版... 一、填空题15*1=15 1. 要下载并调试 STM32 程序,可采用   ...
OSG三维渲染引擎编程学习之二... 目录 第三章:OSG场景组织 3.6 Transform变换节点 第三章:OSG场景组织 ...
cmake 04 使用 pyt... 本文目标 使用 python 写一个管理 cmake 工程的 cli 程序 参考 Python CL...
Java多线程(二)—— Re... ReentrantLock源码解析 ReentrantLock 是可重入的互斥锁,虽然...
linux shell脚本学习 linux shell脚本学习笔记 文章目录linux shell脚本学习笔记一、脚本入门1.我的第...
【MySQL】第九部分 MyS... 【MySQL】第九部分 MySQL信息函数 文章目录【MySQL】第九部分 MySQL信息函数9....