Approach
# 數學題,計算斜率:(x2-x1) / (y2-y1)。
# 小心邊界條件:分母為0。
Mathematics
Time Complexity
O(n)
Space Complexity
O(n)
Code
class Solution {
public:
bool checkStraightLine(vector<vector<int>>& coordinates) {
int line = 0;
double n;
if ((coordinates[1][1] - coordinates[0][1]) == 0) {
line = 1;
}
else {
n = (double)(coordinates[1][0] - coordinates[0][0]) / (coordinates[1][1] - coordinates[0][1]);
}
for (int i = 2 ; i < coordinates.size() ; i++) {
if (coordinates[i][1] - coordinates[i - 1][1] == 0) {
if (line == 1) {
continue;
}
else {
return false;
}
}
else {
if ((double)(coordinates[i][0] - coordinates[i - 1][0]) / (coordinates[i][1] - coordinates[i - 1][1]) != n) {
return false;
}
}
}
return true;
}
};