class Solution {
public int maxPoints(int[][] points) {
int count = 0;
int maxCount = 0;
if(points.length == 1){
return 1;
}
for(int i = 0; i< points.length-1; i++){
for(int j =i+1; j< points.length; j++){
double[] func = function(points[i],points[j]);
for(int k = 0; k<points.length; k++){
if(points[k][1] == func[0]* points[k][0] + func[1]){
count++;
}
}
if(maxCount < count){
maxCount = count;
}
count = 0;
}
}
return maxCount;
}
public static double[] function(int[] point1, int[] point2){
double[] func = new double[2];
func[0] = (double)(point2[1] - point1[1]) / (point2[0] - point1[0]);
func[1] = point1[1] - (double)point1[0] * func[0];
return func;
}
}