给定一个二维平面上的n个点,找出同一条直线上的最大点数。
解法:
穷举,注意斜率不适用float作为键,精度损失。

class Solution {
public:int gcd(int x,int y) { //求最大公约数if (y == 0)return x;elsereturn  gcd(y, x%y);}int maxPoints(vector<Point> &points) {if(points.empty())return 0;else if(points.size() <= 2)return points.size();sort(points.begin(), points.end(), [](Point a, Point b){return a.x<b.x;});long long ans = 0;int n = points.size();for(int i = 0; i < n; i++){map<pair<int, int>, long long> m;long long  cover = 0, vertical = 0, maxk = 0;for(int j = i+1; j<n; j++){int dx = points[i].x - points[j].x;int dy = points[i].y - points[j].y;if(dx == 0 && dy == 0)  //两点重合++cover;else if(dx == 0)      //两点横坐标相等(不重合)maxk = max(maxk, ++vertical);else{int g = gcd(dx, dy);dx/=g, dy/= g;// 计算最大公约数:欧几里得算法// 斜率不适用float作为键,精度损失,使用除以最大公约数后的pair作为键maxk = max(maxk, ++m[make_pair(dx, dy)]);}}ans = max(ans, maxk + cover +1);}return ans;}
};

给定平面上的n个点,求最多有多少个点共线相关推荐

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

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

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

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

  3. 平面上N个点,求斜率最大的那条直线通过的两点

    平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑).时间效率越高越好. 关于这道题,网上已经给出了解答要点: 3个点A,B,C,把它们的按x坐标排序. ...

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

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

  5. C语言算2个坐标点之间的距离,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...

    #include #include #include char explode( char * str , char symbol ); double distance ( int x1 , int ...

  6. 平面上N个点求斜率最大的两个点

    平面上N个点求斜率最大两个点 1.根据X将N个点排序 2.最大的斜率为max(p[i], p[i+1]) 可以证明如果有ABC三个点则AB与BC的斜率一个大于AC另一个则小于AC, k3 = (c - ...

  7. 复平面上gamma函数_神奇的Gamma函数 (中)

    Gamma 函数欣赏 Each generation has found something of interest to say about the gamma function. Perhaps ...

  8. 复平面上gamma函数_Gamma函数

    Gamma函数在现代数学分析中被深入研究,在概率论中也是无处不在,很多统计分布都和这个函数相关.Gamma 函数作为阶乘的推广,首先它也有和 Stirling 公式类似的一个结论: 另外, Gamma ...

  9. 圆与平面的接触面积_如果一个绝对的圆放在绝对的平面上,接触面是不是无限小?...

    这种问题其实并不难解答:如果你真的能找到一个绝对的圆还有一个绝对平的平面上,并且保证放上去之后圆和平面不会有任何变化,那么接触面就可以是无限小! 如果不能,很抱歉,接触面很显然就不会是无限小! 那么你 ...

  10. 给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值。

    给定一个未排序的数组,求如果数组排序之后,相邻数的最大差值.要求时间复杂度为O(n),且要求不能用非基于比较的排序. 首先,这个问题明显限制了不能使用直接排序的方式求解.因为基于比较的排序时间复杂度最 ...

最新文章

  1. OpenXava 4.6.1 发布,Web 快速开发套件
  2. 将Node.js升级到最新版本
  3. python 双冒号
  4. 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)
  5. 阿里P7试用期被淘汰,主管给出的理由让人意想不到
  6. Django(part3)--制作我的第一个网页
  7. 基于Linux的虚拟主机搭建
  8. python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...
  9. OSG+VS2013+Win7 环境搭建,osgvs2013
  10. linux 压缩为多个文件,在Linux中,如何将输入流压缩为多个输出文件?
  11. Sql UNION 合并多个结果集并排序
  12. 微信小程序-配置请求合法域名的问题以及豆瓣api问题
  13. express url跳转(重定向)的实现:res.location() res.redirect()
  14. 清北学堂模拟day4 捡金币
  15. 开发WCF/Silverlight须知
  16. HG255D 刷机备忘
  17. java求航班飞行时间代码,基于JAVA的航班动态接口调用代码实例
  18. .chm 文档打不开
  19. 实验报告(LCS算法和背包算法)
  20. 浅谈程序员常去的社区

热门文章

  1. uniapp支付打开支付宝app进行付款
  2. 利用黎曼几何分析EEG信号(四):集论初步与拓扑空间初步
  3. 西瓜书k-means例子matlab实现
  4. 什么是CLI(命令行界面)、GUI(图形用户界面)、Terminal(终端)、Console(控制台)、Shell、TTY
  5. 拼多多超越阿里淘宝,黄峥辞任董事长;蚂蚁集团CEO宣布辞职,上市陷入迷途?...
  6. “绿多多”绿色资产资讯:良设板+“空间优造”亮相雄安 绿色生态进击!
  7. 进程间的通信(管道通信)
  8. qq系统软件测试计划,软件测试设计报告案例——qq空间.doc
  9. c++自学笔记第五次
  10. cadence软件用于高分屏笔记本时候显示字体模糊问题解决