LeetCode - 706. Design HashMap(Array, Hash Table, Linked List, Design, Hash Function)*

YAMAMAMO·2022년 4월 14일
0

LeetCode

목록 보기
51/100

문제

내장된 해시 테이블 라이브러리를 사용하지 않고 해시 맵을 설계합니다.
MyHashMap 클래스 구현:
MyHashMap()은 빈 맵을 사용하여 개체를 초기화합니다.
void put(int key, int value)은 해시맵에 (key, value) 쌍을 삽입합니다. 키가 지도에 이미 있는 경우 해당 값을 업데이트합니다.
intget(intkey)은 지정된 키가 매핑되는 값을 반환하며, 이 맵에 키에 대한 매핑이 없는 경우 -1을 반환합니다.
void remove(key)는 맵에 키에 대한 매핑이 포함된 경우 키와 해당 값을 제거합니다.

https://leetcode.com/problems/design-hashmap/

Design a HashMap without using any built-in hash table libraries.
Implement the MyHashMap class:
MyHashMap() initializes the object with an empty map.
void put(int key, int value) inserts a (key, value) pair into the HashMap. If the key already exists in the map, update the corresponding value.
int get(int key) returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key.
void remove(key) removes the key and its corresponding value if the map contains the mapping for the key.

Example 1:

Input
["MyHashMap", "put", "put", "get", "get", "put", "get", "remove", "get"][], [1, 1], [2, 2], [1], [3], [2, 1], [2], [2], [2]]
Output
[null, null, null, 1, -1, null, 1, null, -1]
Explanation
MyHashMap myHashMap = new MyHashMap();
myHashMap.put(1, 1); // The map is now [[1,1]]
myHashMap.put(2, 2); // The map is now [[1,1], [2,2]]
myHashMap.get(1); // return 1, The map is now [[1,1], [2,2]]
myHashMap.get(3); // return -1 (i.e., not found), The map is now [[1,1], [2,2]]
myHashMap.put(2, 1); // The map is now [[1,1], [2,1]] (i.e., update the existing value)
myHashMap.get(2); // return 1, The map is now [[1,1], [2,1]]
myHashMap.remove(2); // remove the mapping for 2, The map is now [[1,1]]
myHashMap.get(2); // return -1 (i.e., not found), The map is now [[1,1]]

풀이

자바입니다.

class MyHashMap {
    int[] values;

    public MyHashMap() {
        values=new int[1000001]; 
        Arrays.fill(values,-1); //Arrays.fill() 은 배열을 초기화한다.
    }
    
    public void put(int key, int value) {
         values[key]=value;       
    }
    
    public int get(int key) {
        return values[key]; 
    }
    
    public void remove(int key) {
        values[key]=-1;
    }
}
profile
안드로이드 개발자

0개의 댓글