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

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

样例
给出4个点:(1, 2), (3, 6), (0, 0), (1, 3)。

一条直线上的点最多有3个。

问题分析:
可以根据A点跟其他点所构成线段的斜率判断与A点共线的点的个数.遍历所有点,取出最大值即可,
1.考虑重复点的情况.
2.考虑斜率为无穷大的情况.

import java.util.HashMap;//定义坐标点class Point {int x;int y;Point() { x = 0; y = 0; }Point(int a, int b) { x = a; y = b; }
}public class Solution {
//判断坐标点集是否为空public int maxPoints(Point[] points) {if(points==null||points.length==0){return 0;}
//建立Hash表HashMap<Double,Integer> map= new HashMap<Double,Integer>();int max=1;for(int i=0;i<points.length;i++){map.clear();       //每次重设A点时,清空Hash表map.put((double)Integer.MIN_VALUE,1);   //把相同点的K设为MIN_VALUE;int dup=0;for(int j=i+1;j<points.length;j++){//判断点是否重合if(points[j].x==points[i].x&&points[j].y==points[i].y){dup++;continue;}//判断斜率的K值.double key=points[j].x-points[i].x==0?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+dup>max){max=temp+dup;}}}return max;}}

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

  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个. 方法:取定一个点points[ ...

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

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

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

    给出二维平面上的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. 用Redis存储Tomcat集群的Session(转载)
  2. 俄罗斯、乌克兰程序员薪资大曝光!年薪普遍 15w+,女程序员比男程序员收入高?...
  3. [转]NS2添加多接口
  4. Python-OpenCV 杂项(一):图像绘制
  5. python三大主流框架的对比
  6. python 获取天气_Python实现从百度API获取天气的方法
  7. 云计算发展备受瞩目的五大方向
  8. webpack的面试题
  9. 51. 移除重复脚本(12)
  10. http://mozilla.debian.net/
  11. CSS滤镜(filter)
  12. Java集合框架学习总结
  13. linux 安装arial字体,在CentOS中安装arial字体
  14. 淘宝京东查看价格历史的chrome插件
  15. 【机器学习】机器学习中无意识偏见的分析与预防
  16. ES集群状态检查报错:master_not_discovered_exception 503错误
  17. 【C++】平方矩阵求解
  18. 哈希(散列)函数的一些应用
  19. Iterative Reweighted Least Squares(IRLS)
  20. 设计模式--适配器模式

热门文章

  1. ClusterManager 源码及原理学习
  2. 最新英国优秀大学排名
  3. 惠普服务器DL380 Gen10 安装Windows Server 2019
  4. asus计算机主板,【华硕Z170-A】报价_参数_图片_论坛_ASUS Z170-A华硕主板报价-ZOL中关村在线...
  5. 不朽凡人鸿蒙生息在哪,主题曲资料片齐助阵 《不朽凡人》迎来重大版本更新...
  6. 从麻省理工到云计算创业公司,我经历了什么?
  7. 大学生该做好的准备——听腾讯宣讲会有感
  8. 如何在不清空原有配置的情况下恢复路由器密码?巨强!
  9. java 一年有多少周_java中如何计算一年总共有多少周
  10. 进销存管理(FIFO,LIFO)