673просмотров
7.5%от подписчиков
10 марта 2026 г.
statsScore: 740
Задача: 1037. Valid Boomerang
Сложность: easy Если задан массив points, где points[i] = [xi, yi] представляет точку на плоскости X-Y, верните true, если эти точки являются бумерангом. Бумеранг - это набор из трех точек, которые отличаются друг от друга и не являются прямой линией. Пример:
Input: blocked = [[0,1],[1,0]], source = [0,0], target = [0,2]
Output: false 👨💻 Алгоритм: 1⃣Проверка уникальности точек:
Убедитесь, что все три точки уникальны. Если любые две точки совпадают, то это не бумеранг. 2⃣Проверка на коллинеарность:
Используйте определитель (или площадь параллелограмма) для проверки, находятся ли три точки на одной прямой. Если площадь параллелограмма, образованного тремя точками, равна нулю, то точки коллинеарны. 3⃣Результат:
Если точки уникальны и не коллинеарны, верните true. В противном случае, верните false. 😎 Решение:
var isBoomerang = function(points) { let [x1, y1] = points[0]; let [x2, y2] = points[1]; let [x3, y3] = points[2]; return (x1 !== x2 || y1 !== y2) && (x1 !== x3 || y1 !== y3) && (x2 !== x3 || y2 !== y3) && (x1 (y2 - y3) + x2 (y3 - y1) + x3 * (y1 - y2)) !== 0;
}; Ставь 👍 и забирай 📚 Базу знаний