当前位置:网站首页>LeetCode 0149. Maximum number of points on a line
LeetCode 0149. Maximum number of points on a line
2022-08-01 05:32:00 【Tisfy】
【LetMeFly】149.直线上最多的点数
力扣题目链接:https://leetcode.cn/problems/max-points-on-a-line/
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点.求最多有多少个点在同一条直线上.
示例 1:

输入:points = [[1,1],[2,2],[3,3]] 输出:3
示例 2:

输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]] 输出:4
提示:
1 <= points.length <= 300points[i].length == 2-104 <= xi, yi <= 104points中的所有点 互不相同
方法一:Look at the slope of all other points with this point
The first layer traverses each point.
然后,The second level of traversal traverses each point again,Find the slope between two points,and count with a hash table.
Because they all go through the first point,So points with the same slope are all on a straight line.
Take the maximum number of points with the same slope,It is in the line passing through the first point,The point traversed by the line with the most points.
关于精度问题,C++中使用long double可以通过.
- 时间复杂度 O ( n 2 ) O(n^2) O(n2),其中 n n n是点的个数
- 空间复杂度 O ( n ) O(n) O(n)
AC代码
C++
long double ONE = 1;
class Solution {
public:
int maxPoints(vector<vector<int>>& points) {
int ans = 0;
int n = points.size();
for (int i = 0; i < n; i++) {
unordered_map<long double, int> ma;
int thisAns = 0;
for (int j = 0 ; j < n; j++) {
if (i == j)
continue;
long double k = ONE * (points[j][1] - points[i][1]) / (points[j][0] - points[i][0]);
ma[k]++;
thisAns = max(thisAns, ma[k]);
}
ans = max(ans, thisAns + 1);
}
return ans;
}
};
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/126084170
边栏推荐
猜你喜欢
随机推荐
使用string 容器翻转 字母
uva10825
AspNet.WebApi.Owin 自定义Token请求参数
Selenium: Popup Handling
Selenium: Introduction
「游戏引擎 浅入浅出」4.1 Unity Shader和OpenGL Shader
MySQL-Data Operation-Group Query-Join Query-Subquery-Pagination Query-Joint Query
ApiFile
The solution to the inconsistency between the PaddleX deployment inference model and the GUI interface test results
微信小程序获取手机号phonenumber.getPhoneNumber接口开发
将CSV文件快速导入MySQL中
vim configuration + ctag is as easy to read code as source insight
WebSocket实现聊天功能
说说js中使用for in遍历数组存在的bug
WPF入门项目必知必会-初步了解数据绑定 binding
Robot_Framework: Assertion
小白的0基础教程SQL: 关系数据库概述 02
微信小程序用户登录auth.code2Session接口开发
Asynchronous reading and writing of files
Selenium: browser operation








