Leetcode Max Points on a Line
2015-06-02 12:32
417 查看
Given n points
on a 2D plane, find the maximum number of points that lie on the same straight line.
题意是给定N个点,找到共线的点最多有多少个,求固定一个点points[i],求points[i]与points[j]之间的斜率,统计斜率出现的次数,注意斜率不存在的情况。
on a 2D plane, find the maximum number of points that lie on the same straight line.
题意是给定N个点,找到共线的点最多有多少个,求固定一个点points[i],求points[i]与points[j]之间的斜率,统计斜率出现的次数,注意斜率不存在的情况。
/** * 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) { map<float,int> result; int maxnum = 0; int repeat; for(int i=0; i<points.size(); i++) { result.clear(); repeat = 1; result[INT_MAX]=0; for(int j=0; j<points.size(); j++) { if(i==j) continue; if(points[i].x==points[j].x&&points[i].y==points[j].y) { repeat++; continue; } float temp =points[i].x==points[j].x?INT_MAX:float(points[i].y-points[j].y)/(points[i].x-points[j].x); result[temp]++; } map<float,int>::iterator it; for(it = result.begin(); it!=result.end(); it++) { if((it->second+repeat)>maxnum) { maxnum = it->second+repeat; } } } return maxnum; } };
相关文章推荐
- Android 自动化测试之------ Monkey工具
- hiho一下 第二十九周 最小生成树三·堆优化的Prim算法【14年寒假弄了好长时间没搞懂的prim优化:prim算法+堆优化 】
- C#创建IIS虚拟目录的方法
- LA 3695 部分枚举
- 冒泡排序(BubbleSort)
- UVa 10817 Headmaster's Headache
- Algorithms—12.Integer to Roman
- 获取java类中所有方法及其参数
- java基础复习 常用修饰符 初始化顺序
- XMPP之tigase 番外篇- maven打包
- 【Android】Volley网络异步通信框架的使用
- 【Android】Volley网络异步通信框架的使用
- JavaScript Source Map 详解
- centos 下NFS和FTP的搭建
- MySQL.master and slave 一主多从,切库传输
- 携程失败的公关暴露了哪些问题?
- 【原创】Android开发使用华为手机调试logcat没有应用输出信息
- 脑区
- ajax请求aspx页面
- ICCAVR库制作