設計有setAll功能的雜湊表

2021-10-11 10:59:59 字數 1191 閱讀 4903

設計有setall功能的雜湊表

雜湊表常見的三個操作時put、get和containskey,而且這三個操作的時間複雜度為o(1)。現在想加乙個setall功能,就是把所有記錄value都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put、get、containskey和setall四個操作的時間複雜度都為o(1)。

[友情提示]

c++選手若有需要可以使用unordered_map替換map來將複雜度從o(log n)降為o(1)

輸入描述:

第一行乙個整數n表示運算元。

接下來n行,每行第乙個數字opt代表操作型別

若opt=1,接下來有兩個整數x, y表示設定key=x對應的value=y

若opt=2,接下來乙個整數x,表示查詢key=x對應的value,若key=x不存在輸出-1

若opt=3,接下來乙個整數x,表示把加入過的所有的key對應的value都設定為x

輸出描述:

對於每個操作2,輸出乙個整數表示答案

示例1輸入

6

1 1 2

2 12 2

3 42 1

2 2

輸出
2-14

-1

備註:

1 ⩽n

⩽105

1 \leqslant n \leqslant 10^5

1⩽n⩽105−2

∗109

⩽x,y

⩽2∗1

09

-2 * 10^ \leqslant x, y \leqslant 2 *10^9

−2∗109

⩽x,y

⩽2∗1

09題解:考慮加入乙個時間戳:

**:

#include

#include

using

namespace std;

unordered_map<

int,

int> _hash, _time;

intmain

(void

)else

if( op ==2)

else

puts

("-1");

}else

}return0;

}

設計有setAll功能的雜湊表

題目 雜湊表常見的三個操作是put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有的記錄的value值都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall四個操作的時間複雜度...

其他題目 設計有setAll功能的雜湊表

題目 雜湊表常見的三個操作是put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有的記錄的value值都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall四個操作的時間複雜度...

雜湊表 設計雜湊對映

不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 示例 myhashmap hashmap new myhashmap hashmap.put 1,1 hashmap.put 2,2 hashmap.get 1 返回 1 hashmap.get 3 返回 1 未找到 h...