09 Sept 2026Go / Python / TypeScriptEasy

Valid Boomerang

Check whether three two-dimensional points are distinct and non-collinear.

Compute the cross product of the two vectors from the first point; a nonzero value means the triangle has positive area.

complexity

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

solution files

  • Go valid-boomerang/solution.go
  • Python valid-boomerang/solution.py
  • TypeScript valid-boomerang/solution.ts

Solution files

Govalid-boomerang/solution.go
package main

func isBoomerang(points [][]int) bool {
	return (points[1][0]-points[0][0])*(points[2][1]-points[0][1]) != (points[1][1]-points[0][1])*(points[2][0]-points[0][0])
}
Pythonvalid-boomerang/solution.py
class Solution:
    def isBoomerang(self, points: list[list[int]]) -> bool:
        return (points[class="syntax-number">1][class="syntax-number">0] - points[class="syntax-number">0][class="syntax-number">0]) * (points[class="syntax-number">2][class="syntax-number">1] - points[class="syntax-number">0][class="syntax-number">1]) != (points[class="syntax-number">1][class="syntax-number">1] - points[class="syntax-number">0][class="syntax-number">1]) * (points[class="syntax-number">2][class="syntax-number">0] - points[class="syntax-number">0][class="syntax-number">0])
TypeScriptvalid-boomerang/solution.ts
function isBoomerang(points: number[][]): boolean {
  return (points[class="syntax-number">1][class="syntax-number">0] - points[class="syntax-number">0][class="syntax-number">0]) * (points[class="syntax-number">2][class="syntax-number">1] - points[class="syntax-number">0][class="syntax-number">1]) !== (points[class="syntax-number">1][class="syntax-number">1] - points[class="syntax-number">0][class="syntax-number">1]) * (points[class="syntax-number">2][class="syntax-number">0] - points[class="syntax-number">0][class="syntax-number">0]);
}