package com.heu.wsq.leetcode;
/**
* 1232. 缀点成线
* @author wsq
* @date 2021/1/17
* 在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。
* 请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。
*
* 示例1:
* 输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
* 输出:true
* 链接:https://leetcode-cn.com/problems/check-if-it-is-a-straight-line/
*/
public class CheckStraightLine {
public boolean checkStraightLine(int[][] coordinates){
Integer dx = null;
Integer dy = null;
for (int i = 1; i < coordinates.length; i++){
if (dx == null){
dx = coordinates[i][0] - coordinates[i-1][0];
dy = coordinates[i][1] - coordinates[i-1][1];
continue;
}
int tmpDx = coordinates[i][0] - coordinates[i-1][0];
int tmpDy = coordinates[i][1] - coordinates[i-1][1];
if ((dx == 0 && tmpDx == dx)
|| (dy == 0 && tmpDy == dy)
|| (dx * tmpDy == tmpDx * dy)){
continue;
}
return false;
}
return true;
}
}
1232. 缀点成线
最新推荐文章于 2022-03-15 14:35:06 发布