Re: [問題] leetcode sliding window median

看板Python作者 (人很好那一個)時間8年前 (2017/10/09 19:20), 編輯推噓0(004)
留言4則, 2人參與, 8年前最新討論串2/4 (看更多)
※ 引述《sean72 (.)》之銘言: : https://leetcode.com/problems/sliding-window-median/description/ : leetcode裡面python解法對我來說有點玄 : (mur mur 那個解法提供者的python code每次都短到爆,而且很難讀懂 T_T) : 有人知道這題python該怎麼解嗎? : 我的解法 參考網路上搜到的java解法 : https://repl.it/MSNr/3 : 維持左邊一個maxheap, 右邊一個minheap : median為maxheap top : 每次window往右滑動,則判斷新數字大於或是小於media, : 往左邊或是右邊的heap加入一個元素 : 並且減去剛剛脫離window那個數字 : 但是會超時 : 我猜我的瓶頸應該是在remove之後重新heapify ,這裡需要O(klogk) : java用treeset or priorityQueue remove只需要O(k)時間 我這樣寫竟然沒有超時..... https://tinyurl.com/yckavkzx 我有看到別人,把我用sorted的部份換成bisect.insort 速度變超快 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.70.68.42 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1507548049.A.0A9.html

10/09 19:43, 8年前 , 1F
bisect.insort 似乎是用二元搜尋樹走訪的方式插入數值,
10/09 19:43, 1F

10/09 19:44, 8年前 , 2F
比每次都重新排序快的多
10/09 19:44, 2F

10/09 23:57, 8年前 , 3F
這連結打開之後跳轉到leetcode 沒有程式碼 可否貼到其他
10/09 23:57, 3F

10/09 23:57, 8年前 , 4F
分享程式碼的網站?
10/09 23:57, 4F
文章代碼(AID): #1PsrkH2f (Python)
文章代碼(AID): #1PsrkH2f (Python)