leetcode 149. Max Points on a Line
来源:互联网 发布:博弈矩阵怎么看 编辑:程序博客网 时间:2024/06/06 19:02
149. Max Points on a Line
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
1、遍历每一个点,作为基准点
2、其他点与之比较,用map来存斜率,特殊考虑 垂直和复制的情况。
现在有一个数据过不了,网上很多其他人代码也过不了。
/** * 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.size() <= 2) return points.size(); int ret = 2; for(int i = 0; i < points.size(); i++) { int dup = 0; int ver = 0; int curcount = 1; map<long double,int> xielv; for(int j=0;j<points.size();j++) { if(i != j) { double _x = points[i].x - points[j].x; double _y = points[i].y - points[j].y; if(_x == 0 && _y == 0)//两个点相同 dup++; else if(_x == 0)//垂直情况 { if(ver == 0) ver = 2; else ver++; curcount = max(curcount, ver); } else//斜率存在的情况 { long double xie = _y / _x; if(xielv[xie] == 0) xielv[xie] = 2; else xielv[xie]++; curcount = max(curcount, xielv[xie]); } } } ret = max(ret, curcount + dup); } return ret; }};
阅读全文
0 0
- 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
- 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
- CCF 201604-1 折点计数
- 从word中拷贝代码到vc中空格出现错误解决
- Java根据日期取得星期几
- 基于Puppeteer实现地图打印输出
- 银根收不收的逻辑
- leetcode 149. Max Points on a Line
- Alfred3 无法激活workflows解决方法
- LeetCode题库——AddTwoNumbers
- LAMP环境搭建系列之三:编译安装Apache httpd 2.4.29
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink高级特性与高级应用020-Flink中参数传递和容错设定004
- DB2常用函数
- mysql启动脚本——指定数据目录并指定配置文件
- linux内核调试方法,交叉编译程序出现Illegal instruction的调试方法
- 给 Android 开发者的 RxJava 详解