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

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.
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.
Input: x = 3, y = 4, points = [[2,3]]
Output: -1
Explanation: There are no valid points.
  1. Check x, y are in points.
  2. Calculate distance.
  3. Find minimum d and index i.
  4. Return i.
class Solution:
def nearestValidPoint(self, x, y, points):
init_d=float('inf')
ans=-1
for i in range(len(points)):
a, b = points[i]
if a==x or b==y:
d = abs(a-x) + abs(b-y)
if d < init_d:
init_d, ans = d, i
return ans

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store