LeetCode 第149题
不过感觉这根本不是困难题~~
第二次个for循环,可以从i+1开始,不需要从0开始。
因为第一次遍历就已经遍历过了。
class Solution {
public int maxPoints(int[][] points) {
int len = points.length;
if(len < 2){
return 1;
}
int count = 2;
Map<Float, Integer> map = new HashMap<>();
for(int i = 0; i < len-1; i++){
map.clear();
for(int j = i+1; j < len; j++){
Integer res = 0;
if (points[j][1] == points[i][1]){
res = map.getOrDefault((float)0, 0);
map.put((float)0, ++res);
}else if(points[j][0] == points[i][0]){
res = map.getOrDefault(Float.POSITIVE_INFINITY, 0);
map.put(Float.POSITIVE_INFINITY, ++res);
}else{
float temp = (float)(points[j][1]-points[i][1])/(float)(points[j][0]-points[i][0]);
res = map.getOrDefault(temp, 0);
map.put(temp, ++res);
}
if(res+1 > count){
count = res+1;
}
}
}
return count;
}
}