在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。
示例 1:
输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
输出:true
示例 2:
输入:coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
输出:false
参考代码:
class Solution:
def checkStraightLine(self, coordinates: List[List[int]]) -> bool:
x = [item[0] for item in coordinates]
y = [item[1] for item in coordinates]
if len(set(x)) == 1 or len(set(y)) == 1:
return True
elif len(set(x)) < len(coordinates) or len(set(y)) < len(coordinates):
return False
n = (coordinates[1][1] - coordinates[0][1])/(coordinates[1][0] - coordinates[0][0])
j = 1
while j<len(coordinates):
y = coordinates[j][1] - coordinates[j-1][1]
x = coordinates[j][0] - coordinates[j-1][0]
if n != y/x:
return False
j += 1
return True
【leetcode-python】1232. 缀点成线
最新推荐文章于 2021-09-04 14:52:45 发布