题目:给出二维平面上的n个点,求最多有多少点在同一条直线上。
例子:给出4个点:(1, 2), (3, 6), (0, 0), (1, 3)。一条直线上的点最多有3个。

方法:取定一个点points[i], 遍历其他所有节点, 然后统计斜率相同的点数(用map(float, int) 记录斜率及其对应点数,取map中点数最多的斜率),并求取最大值即可。

class Solution {
public:int maxPoints(vector<Point> &points) {// IMPORTANT: Please reset any member data you declared, as// the same Solution instance will be reused for each test case.unordered_map<float,int> mp;int maxNum = 0;for(int i = 0; i < points.size(); i++){mp.clear();mp[INT_MIN] = 0;int duplicate = 1;for(int j = 0; j < points.size(); j++){if(j == i) continue;if(points[i].x == points[j].x && points[i].y == points[j].y){duplicate++;continue;}float k = points[i].x == points[j].x ? INT_MAX : (float)(points[j].y - points[i].y)/(points[j].x - points[i].x);mp[k]++;}unordered_map<float, int>::iterator it = mp.begin();for(; it != mp.end(); it++)if(it->second + duplicate > maxNum)maxNum = it->second + duplicate;}return maxNum;}
};

最多有多少个点在一条直线上相关推荐

  1. 每天一道LeetCode-----平面上n个点,计算最多有多少个点在一条直线上

    Max Points on a Line 原题链接Max Points on a Line 给出2D平面中的n个坐标点,计算最多有多少个点在一条直线上 一条直线可以用斜率表示,即如果已知(x1,y1) ...

  2. LeetCode149. 直线上最多的点数: 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。

    给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o ±------- ...

  3. 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。

    需求:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 分析思路: 1.将所有点二维坐标化,即定义出所有点的x,y坐标值 2.遍历出所有取出两点的情况(不考虑先后顺序),根据任意 ...

  4. [leetcode] 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. ...

  5. LintCode 最多有多少个点在一条直线上

    题目 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 解决思路 重复的点没有必要去 ...

  6. 最多有多少个点在同一条直线上

    给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. import java.util. ...

  7. lintcode,最多有多少个点在一条直线上

    给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 解题思路:从第一个点开始遍历,每次 ...

  8. LinkCode-最多有多少个点在一条直线上

    最多有多少个点在一条直线上 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 问题分 ...

  9. 最多有多少个点在一条线上

    最多有多少个点在一条线上 问题描述 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 样例1: 输入:(1,2),(3,6),(0,0),(1,3). 输出:3 样例2 输入:(1,2), ...

最新文章

  1. update yum 到指定版本_linux yum安装指定版本mysql或php
  2. caffe使用过程+digits在windows下的安装和运行
  3. matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号
  4. 【Mac】setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
  5. 【重点】程序员面试金典——17.13树转链表
  6. Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题
  7. Oracle 系列 统计信息详解(Statistic)
  8. 贝叶斯详细分析,详细例子解释
  9. 中兴电视盒子破解记录
  10. 关于双硬盘安装双系统
  11. 电路基础里的等效电路
  12. 第八节课-深度学习软件
  13. 零基础学习Java编程培训需要了解哪些知识
  14. 五猴分桃python_五猴分桃问题
  15. Latex——数学符号大全
  16. 软件测试与游戏测试文章合集录
  17. 读《茶树冷胁迫的全局基因表达谱》
  18. Android 云游戏实现
  19. Nvidia AGX Xavier GMSL 自动驾驶控制器设计方案
  20. keyston api与代码router映射

热门文章

  1. CCD机器视觉检测系统常规的工作流程
  2. 使用Eclipse Installer安装Eclipse
  3. 小白如何成为初级WebGIS开发工程师
  4. adb 命令让手机不进入休眠
  5. 你在用什么英文搜索引擎
  6. break能跳出几层
  7. linux挂载exfat4,挂载未知文件系统exfat
  8. 2012杀毒软件排行榜TOP10强
  9. 自律给你自由——设计布局的新姿势
  10. 如何自学编程(三)-初学者应该知道的一些事