https://leetcode.com/problems/valid-boomerang | Easy |
---|
Даны три точки на плоскости (x1, y1)
, (x2, y2)
, (x3, y3)
.
Бумеранг — это три точки, не лежащие на одной прямой.
Верните true
, если точки образуют бумеранг, иначе false
.
Input:
points = [[1,1],[2,3],[3,2]]Output:
true
Input:
points = [[1,1],[2,2],[3,3]]Output:
false
fun isBoomerang(points: Array<IntArray>): Boolean {
val (x1, y1) = points[0]
val (x2, y2) = points[1]
val (x3, y3) = points[2]
// Проверяем, не совпадают ли точки
if ((x1 == x2 && y1 == y2) || (x1 == x3 && y1 == y3) || (x2 == x3 && y2 == y3)) return false
// Проверяем, не лежат ли точки на одной прямой по формуле площади треугольника
return (y2 - y1) * (x3 - x2) != (y3 - y2) * (x2 - x1)
}
O(1), так как выполняем фиксированное число операций.
O(1), так как не используем дополнительную память.