首页 > 其他分享 >LeetCode 1779. Find Nearest Point That Has the Same X or Y Coordinate

LeetCode 1779. Find Nearest Point That Has the Same X or Y Coordinate

时间:2022-08-29 07:22:32浏览次数:103  
标签:Nearest Point int point 1779 points dx dy valid

原题链接在这里:https://leetcode.com/problems/find-nearest-point-that-has-the-same-x-or-y-coordinate/

题目:

You are given two integers, x and y, which represent your current location on a Cartesian grid: (x, y). You are also given an array points where each points[i] = [ai, bi] represents that a point exists at (ai, bi). A point is valid if it shares the same x-coordinate or the same y-coordinate as your location.

Return the index (0-indexed) of the valid point with the smallest Manhattan distance from your current location. If there are multiple, return the valid point with the smallest index. If there are no valid points, return -1.

The Manhattan distance between two points (x1, y1) and (x2, y2) is abs(x1 - x2) + abs(y1 - y2).

Example 1:

Input: x = 3, y = 4, points = [[1,2],[3,1],[2,4],[2,3],[4,4]]
Output: 2
Explanation: Of all the points, only [3,1], [2,4] and [4,4] are valid. Of the valid points, [2,4] and [4,4] have the smallest Manhattan distance from your current location, with a distance of 1. [2,4] has the smallest index, so return 2.

Example 2:

Input: x = 3, y = 4, points = [[3,4]]
Output: 0
Explanation: The answer is allowed to be on the same location as your current location.

Example 3:

Input: x = 3, y = 4, points = [[2,3]]
Output: -1
Explanation: There are no valid points.

Constraints:

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

题解:

Check each point, get dx = point[0] - x, dy = point[1] - y;

if dx == 0 or dy == 0, then we find a candidate. Now we already assume that dx or dy is 0. Then manhattan distance could be simple as Math.abs(dx + dy).

Time Complexity: O(n). n = points.length.

Space: O(1).

AC Java:

 1 class Solution {
 2     public int nearestValidPoint(int x, int y, int[][] points) {
 3         int res = -1;
 4         int min = Integer.MAX_VALUE;
 5         for(int i = 0; i < points.length; i++){
 6             int dx = x - points[i][0];
 7             int dy = y - points[i][1];
 8             if(dx * dy == 0 && Math.abs(dx + dy) < min){
 9                 min = Math.abs(dx + dy);
10                 res = i;
11             }
12         }
13         
14         return res;
15     }
16 }

类似K Closest Points to Origin.

标签:Nearest,Point,int,point,1779,points,dx,dy,valid
From: https://www.cnblogs.com/Dylan-Java-NYC/p/16634674.html

相关文章

  • CF76E Points
    可以把题目转换成求:\[\sum_{i=1}^{n}\sum_{j=i+1}^{n}[(x_i-x_j)^2+(y_i-y_j)^2]\]继续化简:\[=\sum_{i=1}^{n}\sum_{j=i+1}^{n}(x_i-x_j)^2......
  • Flask 学习-20. route 路由中的 endpoint 参数
    前言@app.route中的endpoint参数,就相当于django中的name参数,用来反向生成URL。url_for()函数url_for()函数用于构建指定函数的URL。它把函数名称作为第一个参数。......
  • a point of view
    如果从记录的完好程度来看,从以人为载体到以纸木文字为载体,再到以数字作为载体,这样记录程度的变化会给不同的generation带来什么形成影响呢,这样的发展又向着什么样的方向与......
  • 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
    FastEndpoints 是一个基于.NET6开发的开源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,专门为开发效率而生,带来了全新的开发模式和编码体验。另外对于.N......
  • Flink出现network.partition.ProducerFailedException: java.lang.NullPointerExcepti
    一、错误日志org.apache.flink.runtime.io.network.netty.exception.RemoteTransportException:Erroratremotetaskmanager'xx.xxx.xxx.xxx/xxx.xxx.xxx.xxx:34750'......
  • 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
    大家好,我是等天黑。FastEndpoints 是一个基于.NET6开发的开源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,专门为开发效率而生,带来了全新的开发模式和编......
  • 题解 UVA10869 Brownie Points II
    题意平面上有若干点,\(\text{stan}\)通过一个点划了一条直线,\(\text{ollie}\)通过在这条直线上的点作了一条垂线,那么平面被分成\(4\)个象限,\(\text{stan}\)获得的分数......
  • CFX-Pre-User Locations-User Point Clouds 的输入文件格式
    UserPointClouds所需要的外部输入文件格式(文件格式为.csv)如下述代码所述:点击查看代码[Name]larry1#pointcloudsnameyoudefined[Data]X[m],Y[m],Z[m]0.......
  • 基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints
    大家好,我是等天黑。FastEndpoints是一个基于.NET6开发的开源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,专门为开发效率而生,带来了全新的开发模式和编码......
  • [Google] LeetCode 1610 Maximum Number of Visible Points 极角排序
    Youaregivenanarraypoints,anintegerangle,andyourlocation,wherelocation=[posx,posy]andpoints[i]=[xi,yi]bothdenoteintegralcoordinateson......