149. Max Points on a Line
2016-12-05 01:18
316 查看
题目:
Given n points
on a 2D plane, find the maximum number of points that lie on the same straight line.
总结:
浪费了一个多小时, 总结,头脑不清醒的时候,就不要编代码了。休息十分钟,然后清醒的投入战斗。
代码:
/**
* Definition for a point.
* struct Point {
* int x;
* int y;
* Point() : x(0), y(0) {}
* Point(int a, int b) : x(a), y(b) {}
* };
*/
class Solution {
public:
int maxPoints(vector<Point>& points) {
int n = points.size();
if (n < 3) return n;
int ans = 0;
for (int i = 0; i < n; i++){
unordered_map<double, int> m;
int same = 1;
int local = 0;
for (int j = i + 1; j < n; j++)
{
int ls = 1;
if (points[i].y == points[j].y && points[i].x == points[j].x)
same++;
else{
double slope = points[i].x == points[j].x ? INT_MAX : double(points[i].y - points[j].y) / double(points[i].x - points[j].x);
m[slope]++;
}
}
for (auto it : m)
local = max(local, it.second);
ans =max(ans, local + same);
}
return ans;
}
};
Given n points
on a 2D plane, find the maximum number of points that lie on the same straight line.
总结:
浪费了一个多小时, 总结,头脑不清醒的时候,就不要编代码了。休息十分钟,然后清醒的投入战斗。
代码:
/**
* Definition for a point.
* struct Point {
* int x;
* int y;
* Point() : x(0), y(0) {}
* Point(int a, int b) : x(a), y(b) {}
* };
*/
class Solution {
public:
int maxPoints(vector<Point>& points) {
int n = points.size();
if (n < 3) return n;
int ans = 0;
for (int i = 0; i < n; i++){
unordered_map<double, int> m;
int same = 1;
int local = 0;
for (int j = i + 1; j < n; j++)
{
int ls = 1;
if (points[i].y == points[j].y && points[i].x == points[j].x)
same++;
else{
double slope = points[i].x == points[j].x ? INT_MAX : double(points[i].y - points[j].y) / double(points[i].x - points[j].x);
m[slope]++;
}
}
for (auto it : m)
local = max(local, it.second);
ans =max(ans, local + same);
}
return ans;
}
};
相关文章推荐
- 149. Max Points on a Line
- [leetcode] 149. Max Points on a Line 解题报告
- 【LeetCode】149. Max Points on a Line
- leetcode 149. Max Points on a Line 计算斜率的问题 + 直接暴力求解即可
- [leedcode 149] Max Points on a Line
- LeetCode 149. Max Points on a Line
- [LeetCode]题解(python):149-Max Points on a Line
- LeetCode 149. Max Points on a Line(直线上的点)
- 149. Max Points on a Line
- LeetCode-149.Max Points on a Line
- 149.Max Points on a Line
- LeetCode:149_Max Points on a line | 寻找一条直线上最多点的数量 | Hard
- 149. Max Points on a Line
- Leetcode: 149. Max Points on a Line
- [LeetCode]149 Max Points on a Line
- Leetcode#149 Max Points on a Line
- leetcode_149. Max Points on a Line
- LeetCode 149 Max Points on a Line
- LeetCode 149 — Max Points on a Line(C++ Java Python)
- 【LeetCode】149. Max Points on a Line - javascript