Max Points on a Line

来源:互联网 发布:tpo小站模考软件mac 编辑:程序博客网 时间:2024/05/20 09:46
https://leetcode.com/problems/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.

思路1:一开始想着构造ax+by+c=0的方程,额,好像也可以。。。O(n^2)的复杂度。。然后在比较a、b、c都相同的个数

思路2: 判断三个点在一个线上的方法有至少2中
  1. 根据其中2个创建函数,第三个点带入
  2. 计算斜率
            方法1的效率太低,如果每两个点计算公式,在带入,时间复杂度为O(n^3),没必要
            方法2可行,构建矩阵,存储每2个点的斜率,然后每次遍历每行,以map<double,int>存储斜率个数,斜率相同,必然                 
                    属于同一行

总结:思路2整体可以,但是存储可以免去,因为可以实时计算,然后放到map里面,但复杂度没变O(n^2)            
0 0
原创粉丝点击