Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (史萊哲林的優等生)時間2年前 (2023/10/05 00:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串431/719 (看更多)
706. Design HashMap 設計一個HashMap 思路: 用最簡單的取餘數來當Hash Code: pub struct MyHashMap { buckets: Vec<Option<(i32,i32)>>, size:usize, } impl MyHashMap { fn new() -> Self { MyHashMap { buckets: vec![None; 100000], size: 100000, } } fn hash(&self, key: i32) -> usize{ key as usize % self.size } fn put(&mut self, key: i32, value: i32) { let hash_id = self.hash(key); self.buckets[hash_id] = Some((key,value)); } fn get(&self, key: i32) -> i32 { let hash_id = self.hash(key); match &self.buckets[hash_id] { Some((k, v)) if *k == key => *v, _ => -1, } } fn remove(&mut self, key: i32) { let hash_id = self.hash(key); if let Some((k, _)) = &self.buckets[hash_id] { if *k == key { self.buckets[hash_id] = None; } } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1696436317.A.F0E.html
文章代碼(AID): #1b7P1TyE (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1b7P1TyE (Marginalman)