日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【leetcode】Max Points on a Line

發(fā)布時(shí)間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【leetcode】Max Points on a Line 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

注意的地方:

1.重合的點(diǎn)
2.斜率不存在的點(diǎn)

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 integer 10 def calcK(self,pa, pb): 11 t = ((pb.y - pa.y) * 1.0) / (pb.x - pa.x) 12 return t 13 14 def maxPoints(self, points): 15 l = len(points) 16 res = 0 17 if l <= 2: 18 return l 19 for i in xrange(l): 20 same = 0 21 k = {} 22 k['inf'] = 0 23 for j in xrange(l): 24 if points[j].x == points[i].x and points[j].y != points[i].y: 25 k['inf'] += 1 26 elif points[j].x == points[i].x and points[j].y == points[i].y: 27 same +=1 28 else: 29 t = self.calcK(points[j],points[i]) 30 if t not in k.keys(): 31 k[t] = 1 32 else: 33 k[t] += 1 34 res = max(res, max(k.values())+same) 35 return res 36 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

?

轉(zhuǎn)載于:https://www.cnblogs.com/MrLJC/p/4118069.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的【leetcode】Max Points on a Line的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。