算法系列——缀点成线
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;
以上是关于算法系列——缀点成线的主要内容,如果未能解决你的问题,请参考以下文章