分析
求斜率问题,每个相邻坐标求一下斜率,不相同返回false
C++ 代码
class Solution {
public:
bool static cmp(vector<int> &a,vector<int> &b)
{
if(a[0]!=b[0]) return a[0]<b[0];
return a[1]<b[1];
}
bool checkStraightLine(vector<vector<int>>& coordinates) {
int n=coordinates.size();
sort(coordinates.begin(),coordinates.end(),cmp);
double k=-1e9;
for(int i=1;i<n;i++)
{
double temp=(1.0*(coordinates[i][1]-coordinates[i-1][1]))/(coordinates[i][0]-coordinates[i-1][0]);
if(k==-1000000000) k=temp;
else{
if(temp!=k) return false;
}
}
return true;
}
};