Re: [閒聊] 每日leetcode

作者: DJYOMIYAHINA (通通打死)   2025-02-08 20:27:35
針對出現過的number都maintain一個minheap
change的時候 只管把index push到對應的minheap
不去管被替代掉的數字的heap
只是find的時候
要去確認pop出的index位置 是不是真的是那個number
若否 則繼續pop到是為止
若heap空了就回傳-1
我也不知道為啥會想到這種方法
def __init__(self):
self.mp = defaultdict(list)
self.arr = {}
def change(self, index, number):
"""
:type index: int
:type number: int
:rtype: None
"""
heappush(self.mp[number], index)
self.arr[index] = number
return
def find(self, number):
"""
:type number: int
:rtype: int
"""
while len(self.mp[number]) != 0:
cur_idx = self.mp[number][0]
if cur_idx in self.arr and self.arr[cur_idx]==number:
return cur_idx
else:
heappop(self.mp[number])
return -1
作者: DJYOMIYAHINA (通通打死)   2025-02-08 20:28:00
我居然是今天第一篇 你們就繼續板聚沒關係
作者: oin1104 (是oin的說)   2025-02-08 20:28:00
對不起
作者: JIWP (JIWP)   2025-02-08 20:29:00
別捲了

Links booklink

Contact Us: admin [ a t ] ucptt.com