LeetCode 設計雜湊對映

2021-09-19 18:58:26 字數 1651 閱讀 8989

不使用任何內建的雜湊表庫設計乙個雜湊對映

具體地說,你的設計應該包含以下的功能

put(key, value):向雜湊對映中插入(鍵,值)的數值對。如果鍵對應的值已經存在,更新這個值。

get(key):返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回-1。

remove(key):如果對映中存在這個鍵,刪除這個數值對。

示例:

myhashmap hashmap = new myhashmap();

hashmap.put(1, 1);

hashmap.put(2, 2);

hashmap.get(1); // 返回 1

hashmap.get(3); // 返回 -1 (未找到)

hashmap.put(2, 1); // 更新已有的值

hashmap.get(2); // 返回 1

hashmap.remove(2); // 刪除鍵為2的資料

hashmap.get(2); // 返回 -1 (未找到)

注意:

所有的值都在 [1, 1000000]的範圍內。

操作的總數目在[1, 10000]範圍內。

不要使用內建的雜湊庫。

思路分析:和上一道題leetcode 設計雜湊集合,非常類似,還是使用hash的設計原則。由於key的範圍在[1, 1000000]使用1000個鍊錶來存放資料。

class

myhashmap

/** value will always be non-negative. */

void

put(

int key,

int value)

else

myvec[index]

.insert

(it,);

}}intget

(int key)

else

}void

remove

(int key)

}//獲得key所在的鍊錶中的位置的迭代器

list

int,

int>>

::iterator myfind

(int key)

}return myvec[index]

.end()

;//如果沒有查詢到就返回end()}}

leetcode 706 設計雜湊對映

不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如果對映中存在這個鍵,刪...

LeetCode 706 設計雜湊對映

不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如果對映中存在這個鍵,刪...

leetcode 706 設計雜湊對映

706.設計雜湊對映 不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如...