leetcode 1037. 有效的回旋镖(Valid Boomerang)

题目描述:

回旋镖定义为一组三个点,这些点各不相同且在一条直线上。

给出平面上三个点组成的列表,判断这些点是否可以构成回旋镖。

示例 1:

输入:[[1,1],[2,3],[3,2]]
输出:true

示例 2:

输入:[[1,1],[2,2],[3,3]]
输出:false

提示:

  • points.length == 3
  • points[i].length == 2
  • 0 <= points[i][j] <= 100

解法:

class Solution {
public:
    bool isSamePoint(vector<int>& pt1, vector<int>& pt2){
        return pt1[0] == pt2[0] && pt1[1] == pt2[1];
    }
    
    bool isBoomerang(vector<vector<int>>& points) {
        if(isSamePoint(points[0], points[1]) 
           || isSamePoint(points[0], points[2]) 
           || isSamePoint(points[1], points[2])){
            return false;
        }else{
            int x1 = points[0][0] - points[1][0];
            int y1 = points[0][1] - points[1][1];
            int x2 = points[0][0] - points[2][0];
            int y2 = points[0][1] - points[2][1];
            return x1*y2 != x2*y1;
            //(1, 1), (2, 2)
        }
    }
};

猜你喜欢

转载自www.cnblogs.com/zhanzq/p/10893133.html