LinkCode-最多有多少个点在一条直线上
最多有多少个点在一条直线上
给出二维平面上的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-最多有多少个点在一条直线上相关推荐
- 每天一道LeetCode-----平面上n个点,计算最多有多少个点在一条直线上
Max Points on a Line 原题链接Max Points on a Line 给出2D平面中的n个坐标点,计算最多有多少个点在一条直线上 一条直线可以用斜率表示,即如果已知(x1,y1) ...
- LeetCode149. 直线上最多的点数: 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。
给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o ±------- ...
- 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。
需求:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 分析思路: 1.将所有点二维坐标化,即定义出所有点的x,y坐标值 2.遍历出所有取出两点的情况(不考虑先后顺序),根据任意 ...
- [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. ...
- LintCode 最多有多少个点在一条直线上
题目 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 解决思路 重复的点没有必要去 ...
- 最多有多少个点在一条直线上
题目:给出二维平面上的n个点,求最多有多少点在同一条直线上. 例子:给出4个点:(1, 2), (3, 6), (0, 0), (1, 3).一条直线上的点最多有3个. 方法:取定一个点points[ ...
- 最多有多少个点在同一条直线上
给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. import java.util. ...
- lintcode,最多有多少个点在一条直线上
给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 解题思路:从第一个点开始遍历,每次 ...
- 最多有多少个点在一条线上
最多有多少个点在一条线上 问题描述 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 样例1: 输入:(1,2),(3,6),(0,0),(1,3). 输出:3 样例2 输入:(1,2), ...
最新文章
- 用Redis存储Tomcat集群的Session(转载)
- 俄罗斯、乌克兰程序员薪资大曝光!年薪普遍 15w+,女程序员比男程序员收入高?...
- [转]NS2添加多接口
- Python-OpenCV 杂项(一):图像绘制
- python三大主流框架的对比
- python 获取天气_Python实现从百度API获取天气的方法
- 云计算发展备受瞩目的五大方向
- webpack的面试题
- 51. 移除重复脚本(12)
- http://mozilla.debian.net/
- CSS滤镜(filter)
- Java集合框架学习总结
- linux 安装arial字体,在CentOS中安装arial字体
- 淘宝京东查看价格历史的chrome插件
- 【机器学习】机器学习中无意识偏见的分析与预防
- ES集群状态检查报错:master_not_discovered_exception 503错误
- 【C++】平方矩阵求解
- 哈希(散列)函数的一些应用
- Iterative Reweighted Least Squares(IRLS)
- 设计模式--适配器模式
热门文章
- ClusterManager 源码及原理学习
- 最新英国优秀大学排名
- 惠普服务器DL380 Gen10 安装Windows Server 2019
- asus计算机主板,【华硕Z170-A】报价_参数_图片_论坛_ASUS Z170-A华硕主板报价-ZOL中关村在线...
- 不朽凡人鸿蒙生息在哪,主题曲资料片齐助阵 《不朽凡人》迎来重大版本更新...
- 从麻省理工到云计算创业公司,我经历了什么?
- 大学生该做好的准备——听腾讯宣讲会有感
- 如何在不清空原有配置的情况下恢复路由器密码?巨强!
- java 一年有多少周_java中如何计算一年总共有多少周
- 进销存管理(FIFO,LIFO)