1232 LeetCode 缀点成线

题目描述:
LeetCode第1232题 缀点成线
类型简单

思路:
由前两点确定一条直线
然后再判断后面的点是否在这条直线上

代码如下:

class Solution {
public:
    bool checkStraightLine(vector<vector<int>>& coordinates) {
        if(coordinates.size()<3)  return true;
        int x=coordinates[1][0]-coordinates[0][0];
        int y=coordinates[1][1]-coordinates[0][1];
        for(int i=2;i<coordinates.size();i++){
            if(x==0&&y==0){
                if((coordinates[i][0]-coordinates[i-1][0]==x)&&(coordinates[i][1]-coordinates[i-1][1]==y))
                continue;
                else return false;
            }
            else if(x==0&&y!=0){
                if(coordinates[i][0]-coordinates[i-1][0]==x)
                continue;
                else return false;
            }
            else if(x!=0&&y==0){
                if(coordinates[i][1]-coordinates[i-1][1]==y)
                continue;
                else return false;
            }
            else if(x!=0&&y!=0){
                if((coordinates[i][0]-coordinates[i-1][0]!=0)&&(coordinates[i][1]-coordinates[i-1][1]!=0)){
                    if(x*(coordinates[i][1]-coordinates[i-1][1])==(coordinates[i][0]-coordinates[i-1][0])*y)
                    continue;
                    else return false;
                }
                else return false;
            }
        }
        return true;
    }
};
发布了224 篇原创文章 · 获赞 0 · 访问量 3138

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104916361