# max-points-on-a-line(Leetcode)

## 题目描述

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.

package sxd.learn.java.leetcode;

/**
*
* @author lab
* 2016/5/12
*  Given n points on a 2D plane, find the maximum number of
*  points that lie on the same straight line.
*/
public class Leetcode3 {

public static void main(String[] args) {

}

public int maxPoints(Point[] points) {
int length = points.length;
if(length == 0)
return 0;
if(length == 1)
return 1;
int count = 0;
int max = 0;
for(int i = 0; i < length; i++){
for (int j = i + 1; j < length; j++) {
count = 0;
//同一垂直线上
if(points[i].x == points[j].x && points[i].y == points[j].y){
for (int k = 0; k < length; k++) {
if(points[k].x == points[i].x && points[k].y == points[i].y){
count ++;
}
}
if(count > max)
max = count;
continue;
}

//斜率
for (int k = 0; k < length; k++) {
if((points[k].y - points[j].y) * (points[i].x - points[j].x) == (points[i].y - points[j].y) * (points[k].x - points[j].x)){
count++;
}
}

if(count > max)
max = count;
}
}
return max;
}

class Point {
int x;
int y;
Point() { x = 0; y = 0; }
Point(int a, int b) {
x = a; y = b;
}
}

}

• 本文已收录于以下专栏：

举报原因： 您举报文章：max-points-on-a-line(Leetcode) 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)