LeetCode #706 DesignHashMap. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접, 데이터베이스, sql, query, 쿼리
Runtime: 220 ms, faster than 11.99% of C++ online submissions for Design HashMap.
Memory Usage: 40.9 MB, less than 100.00% of C++ online submissions for Design HashMap.
LeetCode #706
Q.
Design a HashMap without using any built-in hash table libraries.
To be specific, your design should include these functions:
- put(key, value) : Insert a (key, value) pair into the HashMap. If the value already exists in the HashMap, update the value.
- get(key): Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key.
- remove(key) : Remove the mapping for the value key if this map contains the mapping for the key.
해시맵을 디자인하는데, 해시맵 라이브러리는 쓰지말고.
정확히하면, 이러한 기능들을 가진 디자인을 할 것이다.
- put(key, value) : (key, value) 를 HashMap 에 짝으로 넣는다. 만약에 value 가 이미 있으면 값을 바꿔준다.
- get(key) : 특정 key에 해당하는 value 값을 리턴하거나, 없으면 -1 을 반환한다.
- remove(key) : 해당하는 특정 key 와 value 를 지운다.
Example:
MyHashMap
hashMap = new MyHashMap();
hashMap.put(1, 1);
hashMap.put(2, 2);
hashMap.get(1); // returns 1
hashMap.get(3); // returns -1 (not found)
hashMap.put(2, 1); // update the existing value
hashMap.get(2); // returns 1
hashMap.remove(2); // remove the mapping for 2
hashMap.get(2); // returns -1 (not found)
Note:
- All keys and values will be in the range of [0, 1000000].
- The number of operations will be in the range of [1, 10000].
- Please do not use the built-in HashMap library.
Code.. lemme see example code!!!
코드.. 예제코드를 보자!!!
class MyHashMap {
public:
vector<int> keyVector;
vector<int> valVector;
/** Initialize your data structure here. */
MyHashMap() {
keyVector;
valVector;
}
/** value will always be non-negative. */
void put(int key, int value) {
bool isExist = false;
for (int i = 0; i < keyVector.size(); ++i) {
if (keyVector.at(i) == key) {
valVector.at(i) = value;
isExist = true;
break;
}
}
if (!isExist) {
keyVector.push_back(key);
valVector.push_back(value);
}
}
/** Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key */
int get(int key) {
for (int i = 0; i < keyVector.size(); ++i) {
if (keyVector.at(i) == key) {
return valVector.at(i);
}
}
return -1;
}
/** Removes the mapping of the specified value key if this map contains a mapping for the key */
void remove(int key) {
for (int i = 0; i < keyVector.size(); ++i) {
if (keyVector.at(i) == key) {
keyVector.erase(keyVector.begin() + i);
valVector.erase(valVector.begin() + i);
break;
}
}
}
};
/**
* Your MyHashMap object will be instantiated and called as such:
* MyHashMap* obj = new MyHashMap();
* obj->put(key,value);
* int param_2 = obj->get(key);
* obj->remove(key);
*/
Something else you might like...?
2019/02/19 - [Life/Health care] - Lysine 라이신 usage/side effects/dosage 효과/효능/부작용/성인,소아 용법, 복용법
2019/02/28 - [Life/Health care] - Vitamin K, 비타민 K usage/side effects/dosage 효능/부작용/성인,소아 용법