题目

给你两个整数 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 <= 10^4
points[i].length == 2
1 <= x, y, ai, bi <= 10^4
来源:力扣(LeetCode)

解题思路

  根据题目的意思,先找到有效点。有效点的定义就points的元素有一个或两个与给定的x和y对应相等,则当前元素是有效点。然后计算给定点和有效点之间的距离,统计出最近的有效点返回下标即可。

class Solution:def nearestValidPoint(self, x: int, y: int, points: List[List[int]]) -> int:distance=float('inf')index=-1for i in range(len(points)):if x==points[i][0] or y==points[i][1]:if distance>abs(points[i][0]-x)+abs(points[i][1]-y):distance=abs(points[i][0]-x)+abs(points[i][1]-y)index=ireturn index

LeetCode简单题之找到最近的有相同 X 或 Y 坐标的点相关推荐

  1. LeetCode简单题之找到所有数组中消失的数字

    题目 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果. 示例 1 ...

  2. LeetCode简单题之找到小镇的法官

    题目 小镇里有 n 个人,按从 1 到 n 的顺序编号.传言称,这些人中有一个暗地里是小镇法官. 如果小镇法官真的存在,那么: 小镇法官不会信任任何人. 每个人(除了小镇法官)都信任这位小镇法官. 只 ...

  3. LeetCode 1779. 找到最近的有相同 X 或 Y 坐标的点

    文章目录 1. 题目 2. 解题 1. 题目 给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处. 同时,在同一个坐标系下给你一个数组 points ,其中 points[i] ...

  4. LeetCode简单题之将找到的值乘以2

    题目 给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字. 接下来,你需要按下述步骤操作: 如果在 nums 中找到 original ,将 o ...

  5. LeetCode简单题之旋转字符串

    题目 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能 ...

  6. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  7. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  8. LeetCode简单题之字符的最短距离

    题目 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符. 返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s ...

  9. LeetCode简单题之增量元素之间的最大差值

    题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...

最新文章

  1. PHP7 - MongoDB Driver 使用心得
  2. bzoj 1191 [HNOI2006]超级英雄Hero
  3. for(;;)函数中判断条件执行顺序
  4. udt java_Java DB中的Java用户定义类型(UDT)
  5. centos php安装redis扩展,Centos7编译安装redis、php安装phpredis扩展
  6. Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
  7. 第15篇: Flowable-BPMN操作流程之排他网关
  8. j2ee与mysql乱码过滤_J2EE中文乱码处理
  9. 用java写一个单例类_Java 写一个单例模式(Singleton)出来
  10. 面向对象——面向客户端编程
  11. 转发:黑客说:我攻击了隔壁女神的路由器,然后
  12. TMC8670 – 集成EtherCAT通讯和FOC伺服运动控制芯片适用2/3相永磁同步电机
  13. 哈尔滨工业大学车万翔:自然语言处理新范式
  14. 解决 array subscript has type char 错误
  15. 普通人想做自媒体赚钱,应该做什么呢?
  16. VK16K33是带键盘扫描的LED数显/数码管驱动芯片多种封装选择驱动电流大,适合高亮显示场合
  17. 黑客与票贩子联手入侵185个政府网站
  18. 【MATLAB】绘制三角函数曲线、图像的叠加
  19. 数据库系统概念:存储和文件结构
  20. VS2017中文乱码

热门文章

  1. Eclipse的编码
  2. 开源自动化机器学习框架
  3. 汇编语言中将数据、代码、栈放入不同的段
  4. 用0到9十个数字,每个数字使用一次,构成两个五位数a和b,并且a+20295=b.求a,b
  5. LeetCode中等题之煎饼排序
  6. LeetCode简单题之数组中两元素的最大乘积
  7. TensorFlow反向传播算法实现
  8. 服务器技术综述(三)
  9. Android Dialog 弹出的时候标题栏闪烁一下的处理方法
  10. java jdk 环境变量配置(window 10 系统)