最多有多少个点在一条直线上
题目:给出二维平面上的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;}
};
最多有多少个点在一条直线上相关推荐
- 每天一道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个. import java.util. ...
- lintcode,最多有多少个点在一条直线上
给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. 解题思路:从第一个点开始遍历,每次 ...
- LinkCode-最多有多少个点在一条直线上
最多有多少个点在一条直线上 给出二维平面上的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), ...
最新文章
- update yum 到指定版本_linux yum安装指定版本mysql或php
- caffe使用过程+digits在windows下的安装和运行
- matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号
- 【Mac】setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
- 【重点】程序员面试金典——17.13树转链表
- Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题
- Oracle 系列 统计信息详解(Statistic)
- 贝叶斯详细分析,详细例子解释
- 中兴电视盒子破解记录
- 关于双硬盘安装双系统
- 电路基础里的等效电路
- 第八节课-深度学习软件
- 零基础学习Java编程培训需要了解哪些知识
- 五猴分桃python_五猴分桃问题
- Latex——数学符号大全
- 软件测试与游戏测试文章合集录
- 读《茶树冷胁迫的全局基因表达谱》
- Android 云游戏实现
- Nvidia AGX Xavier GMSL 自动驾驶控制器设计方案
- keyston api与代码router映射