Re: [問題] leetcode sliding window median

作者: pokkys (人很好那一個)   2017-10-09 19:20:45
※ 引述《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
速度變超快
作者: ddchris (克里斯)   2017-10-09 19:43:00
bisect.insort 似乎是用二元搜尋樹走訪的方式插入數值,比每次都重新排序快的多
作者: sean72 (.)   2017-10-09 23:57:00
這連結打開之後跳轉到leetcode 沒有程式碼 可否貼到其他分享程式碼的網站?

Links booklink

Contact Us: admin [ a t ] ucptt.com