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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

边工作边刷题:70天一遍leetcode: day 7

發布時間:2024/7/19 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 边工作边刷题:70天一遍leetcode: day 7 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Max Points on a Line

要點:這題暴力解是用任何兩點確定一條直線,然后對其他點檢查是否共線,顯然,這里沒用空間來存儲之前的檢查結果,所以time complexity是O(n^3)。這題的難點是如何存儲從而實現O(n^2)解。思路是另一種確定一條直線的方法是一點和theta,所以theta可以作為map的key。每次內循環就是檢查對于該點下最多共線的點數。
錯誤點:

  • 雙循環loop所有pair的方法,inner loop要找外層index的下一個
  • hashmap是local的,不是global的
  • localmax=1: 這樣1個點或者都是相同點可以pass
  • theta的計算:對于java,因為坐標是int,必須先用(double) cast,及時theta類型是double。而python沒有類型,用float(x-x0)即可
# Definition for a point. # class Point(object): # def __init__(self, a=0, b=0): # self.x = a # self.y = bclass Solution(object):def maxPoints(self, points):""":type points: List[Point]:rtype: int"""maxp = 0for i in range(len(points)):localmax = 1hmap = {}x,y = points[i].x,points[i].ysame = 0for j in range(i+1, len(points)):px,py = points[j].x,points[j].yif px-x==0:if py==y:same+=1continueelse:theta = float("inf")else:theta = (py-y)/float(px-x)print i,j, thetaif theta not in hmap:hmap[theta]=2else:hmap[theta]+=1if hmap[theta]>localmax:localmax = hmap[theta]if localmax+same>maxp:maxp = localmax+samereturn maxp

轉載于:https://www.cnblogs.com/absolute/p/5560412.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的边工作边刷题:70天一遍leetcode: day 7的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。