前2个for确定斜率
第3个for统计等于斜率的点数
import java.util.*;
/*
* public class Point {
* int x;
* int y;
* }
*/
public class Solution {
/**
*
* @param points Point类一维数组
* @return int整型
*/
public int maxPoints (Point[] points){
// write code here
if(points == null|| points.length == 0){
return 0;
}
if(points.length == 1 || points.length == 2){
return points.length;
}
int res = 0;
for(int i = 0 ; i < points.length - 1; ++i){
int a = points[i].x;
int b = points[i].y;
for(int j = i + 1; j < points.length; ++j){
int aa = points[j].x - a;
int bb = points[j].y - b;
int count = 0;
if(aa == 0 && bb == 0){
for(int k = 0; k < points.length; ++k){
if(points[k].x == a && points[k].y == b){
count++;
}
}
}else{
for(int k = 0; k < points.length; ++k){
if((points[k].x - a)*bb == (points[k].y - b) * aa){
count++;
}
}
}
res = Math.max(res, count);
}
}
return res;
}
} 


京公网安备 11010502036488号