LeetCode 1232. Check If It Is a Straight Line

题目

You are given an array coordinates, coordinates[i] = [x, y], where [x, y] represents the coordinate of a point. Check if these points make a straight line in the XY plane.

Example 1:

1
2
Input: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
Output: true

Example 2:

1
2
Input: coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
Output: false

Constraints:

  • 2 <= coordinates.length <= 1000
  • coordinates[i].length == 2
  • -10^4 <= coordinates[i][0], coordinates[i][1] <= 10^4
  • coordinates contains no duplicate point.

思路

Easy题打卡。但是这个题Testcase貌似有Bug…怎么都能Ac…

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution(object):
def checkStraightLine(self, coordinates):
"""
:type coordinates: List[List[int]]
:rtype: bool
"""
k = []
for i in range(1, len(coordinates)):
tmp = 1
dy = coordinates[i][1] - coordinates[i-1][1]
dx = coordinates[i][0] - coordinates[i-1][0]
if dx == 0:
tmp = float('inf')
else:
tmp = dy/dx
k.append(tmp)
if len(set(k)) == 1:
return True
else:
return False