0
点赞
收藏
分享

微信扫一扫

直线上最多的点数

题目

class Solution {
    public int maxPoints(int[][] points) {
        if (points.length == 1) {
            return 1;
        }
        Map<Double, Integer> map = new HashMap<>();
        int max = Integer.MIN_VALUE;
        for (int[] point1 : points) {
            for (int[] point2 : points) {
                double k = (double) (point2[1] - point1[1]) / (double) (point2[0] - point1[0]);
                map.put(k, map.getOrDefault(k, 0) + 1);
            }
            for (Map.Entry<Double, Integer> entry : map.entrySet()) {
                max = Math.max(max, entry.getValue());
            }
            map.clear();
        }
        return max + 1;
    }
}
举报

相关推荐

0 条评论