1232. Check If It Is a Straight Line
🟩 Easy
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

Input: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]] Output: true
Example 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.
Hint-1
If there're only 2 points, return true.
Hint-2
Check if all other points lie on the line defined by the first 2 points.
Hint-3
Use cross product to check collinearity.
Solution
My Solution
func checkStraightLine(coordinates [][]int) bool {
x0, x1 := coordinates[0][0], coordinates[1][0]
y0, y1 := coordinates[0][1], coordinates[1][1]
for i := 1; i < len(coordinates); i++ {
x2, y2 := coordinates[i][0], coordinates[i][1]
if (x1 - x0) * (y2 - y1) != (y1 - y0) * (x2 - x1) {
return false
}
}
return true
}

Leetcode: link
Last updated
Was this helpful?