class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param points int整型vector<vector<>>
* @return int整型
*/
int maxPoints(vector<vector<int> >& points) {
// write code here
int small = INT_MAX, big = INT_MIN;
for (int i = 0; i < points.size(); ++i)
{
small = min(small, min(points[i][0], points[i][1]));
big = max(big, max(points[i][0], points[i][1]));
}
int ret = big - small;
vector<vector<int>> vv(ret + 1, vector<int>(ret + 1));
for (int i = 0; i < points.size(); ++i)
vv[points[i][0] - small][points[i][1] - small] = 1;
int nums = 0;
for (int j = 0; j < ret + 1; ++j)
{
int count = 0;
int m = j, n = ret;
while (m >= 0 && n >= 0)
{
if (vv[m][n] == 1)
++count;
--m;
--n;
}
nums = max(nums, count);
}
for (int j = 0; j < ret + 1; ++j)
{
int count = 0;
int m = j, n = 0;
while (m >= 0 && n <= ret)
{
if (vv[m][n] == 1)
++count;
--m;
++n;
}
nums = max(nums, count);
}
return nums;
}
};