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

graph

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

Example 2

graph_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
}
result

Leetcode: link

Last updated

Was this helpful?