0
点赞
收藏
分享

微信扫一扫

算法系列——缀点成线

何以至千里 2022-03-15 阅读 60

题目

给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。

链接:https://leetcode-cn.com/problems/check-if-it-is-a-straight-line

思路

核心思路是判断斜率。

代码

class Solution {
    public boolean checkStraightLine(int[][] coordinates) {
        //计算斜率 
        if(coordinates==null || coordinates.length <2){
            return false;
        }
        if(coordinates.length==2){
            return true;
        }
        int dx= coordinates[1][0]-coordinates[0][0];
        int dy= coordinates[1][1]-coordinates[0][1];

        //dx/dy =  dx1/dy2;
        //dx dy2= dy* dx1;
    
        for(int i=2;i<coordinates.length;i++){
           int dx1= coordinates[i][0]-coordinates[i-1][0];
           int dy1= coordinates[i][1]-coordinates[i-1][1];
           if(dx * dy1!=dy*dx1){
               return false;
           }
        }
        return  true;

    }
}
举报

相关推荐

0 条评论