設計有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...