Lint_Code_最多有多少个点在一条直线上

2024-04-10 08:32

本文主要是介绍Lint_Code_最多有多少个点在一条直线上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:

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

样例:给出4个点:(1, 2)(3, 6)(0, 0)(1, 3)一条直线上的点最多有3个。

算法思想:点和点在不在一条直线上,关键两点之间的斜率是否相同。开始自己写了一些,但过于理想化,且复杂,没有考虑全面,并且没有考虑到使用map集合。最后这种还是从从网上百度出来的:

    public int maxPoints(Point[] points) {if(points==null||points.length==0){return 0;}int max=1;//用到了map集合HashMap<Double,Integer> map=new HashMap<Double,Integer>();for(int i=0;i<points.length;i++){map.clear();map.put((double)Integer.MIN_VALUE, 1);int dou=0;for(int j=i+1;j<points.length;j++){if(points[j].x==points[i].x&&points[j].y==points[i].y){dou++;}else{double key=(points[j].x-points[i].x==0?(double)Integer.MAX_VALUE:0.0+(double)(points[j].y-points[i].y)/(double)(points[j].x-points[i].x));if(map.containsKey(key)){map.put(key, map.get(key)+1);}else{map.put(key,2);}}}for(int temp:map.values()){if((temp+dou)>max){max=temp+dou;}}}return max;}



这篇关于Lint_Code_最多有多少个点在一条直线上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890558

相关文章

直线一级倒立摆微分建模

建模内容如下:         https://mp.weixin.qq.com/s?__biz=Mzg5OTIyNDEzMg==&mid=2247483673&idx=1&sn=c4e8024ebffd87611b757f7fd570f3c4&chksm=c057c632f7204f2442d0aab652847e342447fa604f04d74faafb798f022fb30e

VS Code SSH 远程连接服务器及坑点解决

背景 Linux服务器重装了一下,IP没有变化,结果VS Code再重连的时候就各种问题,导致把整个流程全部走了一遍,留个经验帖以备查看 SSH 首先确保Windows安装了ssh,通过cmd下ssh命令查看是否安装了。 没安装,跳转安装Windows下的ssh 对应的,也需要Linux安装ssh,本文是Ubuntu系统,使用以下命令安装: sudo apt updatesudo

Google Code Jam 2014(附官方题解)

2014年Google编程挑战赛 Problem A. Magic Trick Confused? Read the quick-start guide. Small input 6 points You have solved this input set. Note: To advance to the next rounds, you will need to s

在Mac OS上使用Visual Studio Code创建C++ Qt的Hello World应用

引言 Qt是一个跨平台的应用程序和用户界面框架,而Visual Studio Code是一个功能强大的编辑器,两者结合可以极大地提升开发效率。本文将指导你在Mac OS上使用Visual Studio Code创建一个简单的Qt 'Hello World'窗口应用。 环境准备 确保你的MacBook OS运行最新的操作系统。安装Homebrew,Mac OS的包管理器。通过Homebrew安装

OpenGL:中点直线算法

理论部分 中点直线算法是通过在像素中确定与理想直线最靠近的像素来进行扫描转换的。 在上图中,假设直线的斜率 0 ≤ m ≤ 1 0\le m \le 1 0≤m≤1。假设当前最近的像素已经确认为 P ( x k , y k ) P(x_k, y_k) P(xk​,yk​),由于 x x x位最大的位移方向,因此直线在 x x x方向上每次增加一个像素单位,而在 y y y方向上是否

百度笔试题:绳子最多覆盖多少个点

版权所有。所有权利保留。 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/17123711 百度笔试题: 数轴上从左到右有n个点,a[0] ,a[1],…,a[n-1],给定一根长度为L绳子,求绳子最多覆盖其中几个点?

DDA直线算法

理论部分 假设给定直线段的起点坐标 ( x 0 , y 0 ) (x_0,y_0) (x0​,y0​)和终点坐标 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​),则该直线的直线方程为: y = k x + b y=kx + b y=kx+b 其中 k = y 1 − y 2 x 2 − x 1 , b = y 0 − k x 0 k=\frac{y_1-y_2}{x_2-x

【C/C++】Code Style

消除重复 PS:机能一次,使用多次 // .hvirtual bool hasFormat(const QString &mimetype) const;//.cppbool QMimeData::hasFormat(const QString &mimeType) const{return formats().contains(mimeType);}bool QMimeData::h

Query failed with error code 96 and error message 'Executor error during find command: OperationFail

Query failed with error code 96 and error message 'Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smal

gbase8s之Encoding or code set not supported

如图发生以下错误: 解决办法:在url里加上ifx_use_strenc=true 就可以了 参数解释: