有关于我
我的生活
这个网站
刷题之旅
Check If It Is a Straight Line
You are given an array coordinates, coordinates[i] = [x, y], where [x, y] represents the coordinate of a point. Check if these points make a straight line in the XY plane.
Example 1:
Input: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
Output: true
Example 2:
Input: coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]]
Output: false
Constraints:
2 <= coordinates.length <= 1000 coordinates[i].length == 2 -10^4 <= coordinates[i][0], coordinates[i][1] <= 10^4 coordinates contains no duplicate point. Solution:
class Solution {
public boolean checkStraightLine(int[][] coordinates) {
double a = (double) (coordinates[1][1] - coordinates[0][1]) / (coordinates[1][0] - coordinates[0][0]);
double y = coordinates[1][1] - a * coordinates[1][0];
// System.out.println(a + "," + y);
for (int i = 2; i < coordinates.length; i ++) {
if (a == Double.POSITIVE_INFINITY) {
if (coordinates[i][0] != coordinates[i - 1][0]) {
return false;
} else {
continue;
}
}
if (a * coordinates[i][0] + y != (double) coordinates[i][1]) {
return false;
}
}
return true;
}
}
Please enable JavaScript to view the comments