Max Points on a Line -- leetcode
来源:互联网 发布:淘宝中国知网账号 编辑:程序博客网 时间:2024/05/22 01:50
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
基本思路:
本题是求解,在同一条直线上点的个数。最大值。
2点,能确定一条直线。 而判断第三点,是否位于该值线上。需要用到斜率。
即选定一个点,为基准点。 其他点,都对该点求斜率。 斜率相同的点,将位于一条直线。
求斜率所要特殊注意的是, 一种是,与基础点完全一样的点。因为分母分子都会为0.
另一种是,与基础点,垂直的点。因为分母会为0.
在leetcode上实际执行时间为28ms。
/** * 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) { if (points.empty()) return 0; int ans = 0; unordered_map<double, int> slopes; for (int i=0; i<points.size(); i++) { slopes.clear(); int verticals = 0; int duplicates = 0; int local = 0; for (int j=i+1; j<points.size(); j++) { if (points[i].x == points[j].x) { if (points[i].y == points[j].y) ++duplicates; else ++verticals; } else { const double slope = double(points[j].y - points[i].y) / (points[j].x-points[i].x); ++slopes[slope]; local = max(local, slopes[slope]); } } local = max(local, verticals); local += duplicates; ans = max(ans, local); } return ans+1; }};
0 0
- Max Points on a Line | leetcode
- Max Points on a Line LEETCODE
- Leetcode: Max Points on a Line
- LeetCode - Max Points on a Line
- LeetCode 之 Max Points on a Line
- LeetCode | Max Points on a Line
- [LeetCode] Max Points on a Line
- Leetcode: Max Points on a Line
- LeetCode OJ:Max Points on a Line
- Leetcode Max Points on a Line
- Leetcode: Max Points on a Line .
- [Leetcode] Max Points on a Line (Java)
- leetcode:【Max Points on a Line】
- Max Points on a Line - LeetCode
- LeetCode:Max Points on a Line
- [LeetCode] Max Points on a Line
- leetcode - Max Points on a Line
- LeetCode(149)Max Points on a Line
- java对象的内存布局(一):计算java对象占用的内存空间以及java object layout工具的使用
- 使用通知中心NSNotificationCenter实现不同的视图控制器的参数传递
- svn提交代码出错
- 对三层架构的理解
- Maxstore OpenCart 2.X 自适应主题模板 ABC-0653
- Max Points on a Line -- leetcode
- 本地wordpress加载速度缓慢的解决方法和安装插件
- C++对C的函数拓展 - 占位参数
- HDU1198Farm Irrigation——并查集
- Android 线性布局(LinearLayout)相关官方文档 - 布局参数部分
- C Language Study - 函数指针的使用
- adb.exe,start-server' failed -- run manually if necessary
- 1 Java安全策略简介
- 数据库分页查询SQL语句