[LeetCode] 149. Max Points on a Line
2016-09-11 20:51
387 查看
思路:
对于每个点, 都建造一个哈希表, key是其他剩下的点跟该点组成的直线的斜率, value是该斜率上的点的记数. 但要记得需要额外的变量记录重复点的个数和垂直于x轴的直线上的点的个数. 这些要特殊记录的.
对于每个点, 都建造一个哈希表, key是其他剩下的点跟该点组成的直线的斜率, value是该斜率上的点的记数. 但要记得需要额外的变量记录重复点的个数和垂直于x轴的直线上的点的个数. 这些要特殊记录的.
int maxPoints(vector<Point>& points) { unordered_map<double, int> m; int res = 0; for (int i = 0; i < points.size(); i++) { int dup = 1; int vertical = 1; for (int j = i + 1; j < points.size(); j++) { Point p1 = points[i]; Point p2 = points[j]; if (p1.x == p2.x) { if (p1.y == p2.y) dup++; else vertical++; } else { double slope = (p2.y - p1.y) * 1.0 / (p2.x - p1.x); m[slope]++; } } int cur = 0; for (pair<double, int> p : m) cur = max(cur, p.second); res = max(res, cur + dup); res = max(res, vertical); m.clear(); } return res; }
相关文章推荐
- [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
- 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
- LeetCode(149) Max Points on a Line
- LeetCode 149 — Max Points on a Line(C++ Java Python)
- leetcode-149. Max Points on a Line
- LeetCode(149) Max Points on a Line
- leetCode 149. Max Points on a Line
- LeetCode: Max Points on a Line [149]
- leetcode 149. Max Points on a Line 计算斜率的问题 + 直接暴力求解即可
- [LeetCode]149. Max Points on a Line 深入浅出讲解和代码示例