算法系列——缀点成线

Posted BridgeGeorge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——缀点成线相关的知识,希望对你有一定的参考价值。

题目

给定一个数组 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;

    

以上是关于算法系列——缀点成线的主要内容,如果未能解决你的问题,请参考以下文章

算法系列——缀点成线

[leetcode 周赛 159] 1232 缀点成线

缀点成线

酷炫星空,连点成线

origin 两种不同的X轴,画出图像后怎么将这两个图像分别设置成线和点?

如何计算直线的斜率?