#LeetCode Max Points On A Line

来源:互联网 发布:手机如何申请淘宝直播 编辑:程序博客网 时间:2024/05/01 11:28
public class Solution {    public int maxPoints(Point[] points) {        if (points.length == 0)        return 0;        if (points.length == 1)        return 1;                int maxP = 0;        int result = 0;        for (int i = 0; i < points.length; i ++) {        int same = 0;        int ver = 0;        int max = 0;        Hashtable<Double, Integer> table = new Hashtable<>();        for (int j = 0; j < points.length; j ++) {        if (i == j)        continue;        if (points[j].x == points[i].x && points[j].y == points[i].y)         same++;                else if (points[j].x == points[i].x && points[j].y != points[j].y)         ver++;                else {        double k = (double)(points[j].y - points[i].y) / (double)(points[j].x - points[i].x);        if (!table.containsKey(k)) {        table.put(k, 1);        if (max < 1) max = 1;        }        else {        int tmp = table.get(k);        tmp++;        table.put(k, tmp);        if (tmp > max) max = tmp;        }        }        }        maxP = (max > ver)? max + same + 1 : ver + same + 1;        if (maxP > result) result = maxP;        }        return result;    }}

0 0
原创粉丝点击