LeetCode 1038 Javascript

210 阅读1分钟

代码

/**
 * @param {number[][]} points
 * @return {boolean}
 */
var isBoomerang = function(points) {
    let set = new Set(points.map(el => el + ''))
    if (set.size < 3) {
        return false;
    }
    let sides = [];
    sides[0] = Math.sqrt(Math.pow(points[0][0] - points[1][0], 2) + Math.pow(points[0][1] - points[1][1], 2));
    sides[1] = Math.sqrt(Math.pow(points[0][0] - points[2][0], 2) + Math.pow(points[0][1] - points[2][1], 2));
    sides[2] = Math.sqrt(Math.pow(points[1][0] - points[2][0], 2) + Math.pow(points[1][1] - points[2][1], 2));
    sides.sort();
    if (sides[0] + sides[1] <= sides[2]) {
        return false;
    }
    return true;
};

思路

用斜率判断是否一条直线效率高多了