# Leetcode 149. Max Points on a Line
## 題目內容:
給定一個二維陣列表示其座標ex:[[1,0][2,0]]表示(1,0),(2,0),計算在同一條直線存在最多幾個點
示範測資:


## 解題思路
解題思路(暴力法):
1.固定其中一筆資料計算與其他筆資料的斜率,再去檢查此斜率與固定資料和其他筆資料的斜率是否相等
## 注意事項:
1.斜率算法 m = (y1-y2)/(x1-x2),在數學中x1 = x2為鉛直線但程式再跑這段程式碼會runtime error 所以可以把它訂為某個不會出現的數。
2.資料型態的部分,題目給你的資料型態為int但斜率有可能是小數,須強制轉型成float。
## C的參考程式碼
```
float M(float x1,float y1,float x2,float y2){
if(x1==x2)return INT_MAX;
float m = (y1-y2)/(x1-x2);
return m;
}
int maxPoints(int** points, int pointsSize, int* pointsColSize){
float m;
int max = 1;
if(pointsSize==1)return 1;
for(int i = 0;i<pointsSize-1;i++){
for(int j = i+1;j<pointsSize;j++){
int cnt = 1;
m = M((float)points[i][0],(float)points[i][1],(float)points[j][0],(float)points[j][1]);
for(int k = 0;k<pointsSize;k++){
if(k==i)continue;
if(m == M((float)points[i][0],(float)points[i][1],(float)points[k][0],(float)points[k][1]))cnt++;
max = (max<cnt)?cnt:max;
}
}
}
return max;
}
```