对于给定的n个位于同一二维平面上的点,求最多能有多少个点位于同一直线上
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
#include <iostream>
#include <vector>
#include <map>
using namespace std;
/**
* Definition for a point.
*/
struct Point {
int x;
int y;
Point() : x(0), y(0) {}
Point(int a, int b) : x(a), y(b) {}
};
//map的比较函数
struct cmp_key
{
bool operator()(const Point &k1, const Point &k2)const
{
if (k1.x != k2.x)
{
return k1.x < k2.x;
}
return false;
}
};
class Solution {
public:
int maxPoints(vector<Point> &points) {
int nMax = 0;
int nNum = 0;
int nIndex