09 Sept 2026Go / Python / TypeScriptEasy

Check If It Is a Straight Line

Determine whether every coordinate lies on one straight line.

Use cross multiplication to compare each point's displacement with the first segment, avoiding division and vertical-line special cases.

complexity

O(n) time and O(1) space.

solution files

  • Go check-if-it-is-a-straight-line/solution.go
  • Python check-if-it-is-a-straight-line/solution.py
  • TypeScript check-if-it-is-a-straight-line/solution.ts

Solution files

Gocheck-if-it-is-a-straight-line/solution.go
package main

func checkStraightLine(coordinates [][]int) bool {
	dx, dy := coordinates[1][0]-coordinates[0][0], coordinates[1][1]-coordinates[0][1]
	for _, point := range coordinates[2:] {
		if (point[0]-coordinates[0][0])*dy != (point[1]-coordinates[0][1])*dx {
			return false
		}
	}
	return true
}
Pythoncheck-if-it-is-a-straight-line/solution.py
class Solution:
    def checkStraightLine(self, coordinates: list[list[int]]) -> bool:
        dx = coordinates[class="syntax-number">1][class="syntax-number">0] - coordinates[class="syntax-number">0][class="syntax-number">0]; dy = coordinates[class="syntax-number">1][class="syntax-number">1] - coordinates[class="syntax-number">0][class="syntax-number">1]
        return all((x - coordinates[class="syntax-number">0][class="syntax-number">0]) * dy == (y - coordinates[class="syntax-number">0][class="syntax-number">1]) * dx for x, y in coordinates[class="syntax-number">2:])
TypeScriptcheck-if-it-is-a-straight-line/solution.ts
function checkStraightLine(coordinates: number[][]): boolean {
  const dx = coordinates[class="syntax-number">1][class="syntax-number">0] - coordinates[class="syntax-number">0][class="syntax-number">0]; const dy = coordinates[class="syntax-number">1][class="syntax-number">1] - coordinates[class="syntax-number">0][class="syntax-number">1];
  return coordinates.slice(class="syntax-number">2).every(([x, y]) => (x - coordinates[class="syntax-number">0][class="syntax-number">0]) * dy === (y - coordinates[class="syntax-number">0][class="syntax-number">1]) * dx);
}