LeetCode__Max Points on a Line
来源:互联网 发布:战舰世界数据 编辑:程序博客网 时间:2024/06/01 17:07
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
题意:是在二维平面上给出一系列点,要求最大的共线的点的数量。
首先想到平面上的点共线的定义,即穿过共同点且斜率相同。因此我们可以遍历每个点,找出其他点和这个点构成的直线的斜率,并用一个map记录下这个斜率下的点的数量。注意平面上相同的点要特殊处理。
class Solution {public:int maxPoints(vector<Point> &points) {if (points.size() == 0)return 0;int MAX = 1;map<double, int> maps;vector<Point>::iterator p;vector<Point>::iterator q;for (p = points.begin(); p != points.end(); ++p){maps.clear();int count = 1;for (q = p + 1; q != points.end(); ++q){if (p->x == q->x && p->y == q->y)++count;else++maps[Slope(p, q)];}int temp = 0;for (map<double, int>::iterator t = maps.begin(); t != maps.end(); ++t){if (t->second > temp)temp = t->second;}MAX = (count + temp) > MAX ? (count + temp) : MAX;}return MAX;}private:double Slope(vector<Point>::iterator p, vector<Point>::iterator q){if (p->x == q->x)return numeric_limits<double>::max();return static_cast<double>(p->y - q->y) / static_cast<double>(p->x - q->x);}};
0 0
- LeetCode__Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points On a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- max points on a line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- Max Points on a Line
- c0000218 Unknown Hard Error的解决
- 挂载NFS根文件系统时出现Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
- Java NIO系列教程(四) Scatter/Gather
- $$_javassist_1 cannot be cast to javassist.util.proxy.Proxy
- Java NIO系列教程(五) 通道之间的数据传输
- LeetCode__Max Points on a Line
- Linux 多进程与多线程
- WebServices学习笔记(四)使用services.xml文件发布WebService
- 10300-Ecological Premium
- Exe4j 打包jar包成exe
- 给大家介绍一个java取色器工具
- C++ 关键字mutable 和 volatile
- stm32 堆和栈(stm32 Heap & Stack)
- 经验tree我耳如果