解題思路
解題**
解題感悟
難度: 簡單
題目:
不使用任何內建的雜湊表庫設計乙個雜湊對映(hashmap)。
實現 myhashmap 類::
輸入:
["myhashmap", "put", "put", "get", "get", "put", "get", "remove", "get"]
[, [1, 1], [2, 2], [1], [3], [2, 1], [2], [2], [2]]
輸出:[null, null, null, 1, -1, null, 1, null, -1]
解釋:myhashmap myhashmap = new myhashmap();
myhashmap.put(1, 1); // myhashmap 現在為 [[1,1]]
myhashmap.put(2, 2); // myhashmap 現在為 [[1,1], [2,2]]
myhashmap.get(1); // 返回 1 ,myhashmap 現在為 [[1,1], [2,2]]
myhashmap.get(3); // 返回 -1(未找到),myhashmap 現在為 [[1,1], [2,2]]
myhashmap.put(2, 1); // myhashmap 現在為 [[1,1], [2,1]](更新已有的值)
myhashmap.get(2); // 返回 1 ,myhashmap 現在為 [[1,1], [2,1]]
myhashmap.remove(2); // 刪除鍵為 2 的資料,myhashmap 現在為 [[1,1]]
myhashmap.get(2); // 返回 -1(未找到),myhashmap 現在為 [[1,1]]
**:力扣(leetcode)
鏈結:
雜湊對映,就是key-value對應的雜湊結構,而實現思路與705.設計雜湊集合類似。通過鏈位址法,為每個雜湊值建立一條鍊錶,相同雜湊值在鍊錶中遍歷查詢,找到對應的key即可得其value。
class
myhashmap
public
:/** initialize your data structure here. */
myhashmap()
/** value will always be non-negative. */
void
put(
int key,
int value)
} map[n]
.push_back
(make_pair
(key, value));
}int
get(
int key)
}return-1
;}void
remove
(int key)}}
};
該題只要理解雜湊集合的內容,就可以套用其結構輕鬆解題。 力扣每日一題706 設計雜湊對映
原理和昨天一樣 hash表 陣列 鍊錶 今天要考慮鍵值 因此使用結構體kv儲存鍵 和值。如果沒有該鍵 則使用結構體進行構造新鍵值。並將其壓入list中。class myhashmap struct kv vector set public initialize your data structure...
力扣706 設計雜湊對映
原題 不使用任何內建的雜湊表庫設計乙個雜湊對映 hashmap 實現 myhashmap 類 myhashmap 用空對映初始化物件 void put int key,int value 向 hashmap 插入乙個鍵值對 key,value 如果 key 已經存在於對映中,則更新其對應的值 val...
每日一題 Leetcode706 設計雜湊對映
2021 3 14,今天的每日一題是leetcode706.設計雜湊對映,題意如下 和昨天的設計雜湊集合類似,沒有看過的可以移步 每日一題 leetcode705.設計雜湊集合 區別雜湊對映要存的是兩個值,我們可以用pair這個資料結構實現,具體 也差不多。c 參考 時間複雜度 o n b 其中 n...