力扣每日一題 706 設計雜湊對映

2021-10-22 07:20:51 字數 1594 閱讀 6622

解題思路

解題**

解題感悟

難度: 簡單

題目

不使用任何內建的雜湊表庫設計乙個雜湊對映(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...