706. Design HashMap - Easy
前往題目
想法
key-value
,key
是唯一的,那能用hashset
嗎?題目說不能用built-in hash table
,hashset
算hash table
嗎?維基:In computing, a hash table, also known as a hash map or a hash set
,所以不能用hash set
- 那是要手動運算
hashcode
? - 不用
hash table
又想要get
可以O(1)
時間完成,只能透過index直接取,如果是陣列的話
思路
簡單版:直接初始化陣列大小為題目的數字範圍
進階版:應用hashmap
概念,hash
與chaining
ListNode
:每個hashcode
的位置都使用鏈表來儲存多個不同的key
初始化:一個大小適合的陣列,放好ListNode
hash
:key
取餘map
的大小,這樣就能保證每個key
都映射到map
裡不會出界put
:算出hash
,根據hash
定位,疊代ListNode
,有找到相同key
就更新值,沒有的話就在鏈表尾巴加入get
:算出hash
,定位,疊代,沒找到就回傳-1
remove
:算出hash
,定位,找到就刪除並且拼接鏈表,沒找到無所謂
Code
簡單版 進階版706. Design HashMap - Easy
https://f88083.github.io/2024/03/22/706-Design-HashMap-Easy/