国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

【leetcode】MaxPointsonaLine

2019-11-14 17:29:22
字體:
來源:轉載
供稿:網友

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.首先由這么一個O(n^3)的方法,也就是算出每條線的方程(n^2),然后判斷有多少點在每條線上(N)。這個方法肯定是可行的,只是復雜度太高
2.然后想到一個O(N)的,對每一個點,分別計算這個點和其他所有點構成的斜率,具有相同斜率最多的點所構成的直線,就是具有最多點的直線。

注意的地方:

1.重合的點
2.斜率不存在的點

 1 # Definition for a point 2 class Point: 3     def __init__(self, a=0, b=0): 4         self.x = a 5         self.y = b 6  7 class Solution: 8     # @param points, a list of Points 9     # @return an integer10     def calcK(self,pa, pb):11         t = ((pb.y - pa.y) * 1.0) / (pb.x - pa.x)12         return t13         14     def maxPoints(self, points):15         l = len(points)16         res = 017         if l <= 2:18             return l 19         for i in xrange(l):20             same = 021             k = {}22             k['inf'] = 023             for j in xrange(l):24                 if points[j].x == points[i].x and points[j].y != points[i].y:25                     k['inf'] += 126                 elif points[j].x == points[i].x and points[j].y == points[i].y:27                     same +=128                 else:29                     t = self.calcK(points[j],points[i])30                     if t not in k.keys():31                         k[t] = 132                     else:33                         k[t] += 134             res = max(res, max(k.values())+same)35         return res36         37 def main():38     points = []39     points.append(Point(0,0))40     points.append(Point(1,1))41     points.append(Point(1,-1))42     #points.append(Point(0,0))43     #points.append(Point(1,1))44     #points.append(Point(0,0))45     s = Solution()46     PRint s.maxPoints(points)47     48     49 if __name__ == '__main__':50     main()51         

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲麻莱县| 山东| 宁安市| 怀柔区| 汤阴县| 东宁县| 崇左市| 卢湾区| 仁寿县| 呼图壁县| 仁怀市| 安义县| 商丘市| 当雄县| 专栏| 郯城县| 呼玛县| 元江| 谷城县| 阜平县| 高密市| 郎溪县| 陇川县| 永年县| 鱼台县| 神池县| 宿迁市| 泗水县| 阿鲁科尔沁旗| 格尔木市| 漳平市| 全椒县| 恩施市| 樟树市| 红安县| 通河县| 康定县| 隆子县| 康定县| 民县| 海盐县|