# 直线上最多的点数

给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。

 

示例 1:

输入:points = [[1,1],[2,2],[3,3]]
输出:3

示例 2:

输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
输出:4

 

提示:

## template ```python class Solution: def maxPoints(self, points: List[List[int]]) -> int: if len(points) <= 2: return len(points) maxNum = 0 for i in range(len(points)): maxNum = max(maxNum, self.find(points[i], points[:i] + points[i + 1 :])) return maxNum + 1 def find(self, point, pointList): memories = {} count = 0 inf = float("inf") for curPoint in pointList: if curPoint[1] == point[1] and curPoint[0] != point[0]: memories[inf] = memories.get(inf, 0) + 1 elif curPoint[1] == point[1] and curPoint[0] == point[0]: count += 1 else: slope = (curPoint[0] - point[0]) / (curPoint[1] - point[1]) memories[slope] = memories.get(slope, 0) + 1 if memories: return count + max(memories.values()) else: return count ``` ## 答案 ```python ``` ## 选项 ### A ```python ``` ### B ```python ``` ### C ```python ```