0
点赞
收藏
分享

微信扫一扫

LeetCode 第149题

老榆 2022-02-27 阅读 31

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;
    }
}

在这里插入图片描述

举报

相关推荐

0 条评论