LeetCode刷题记录13——705. Design HashSet(easy)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode刷题记录13——705. Design HashSet(easy)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LeetCode刷題記錄13——705. Design HashSet(easy)
目錄
LeetCode刷題記錄13——705. Design HashSet(easy)
前言
題目
語言
思路
源碼
后記
前言
今天賊熱
題目
今天的題目是關于哈希表的,叫你創建一個哈希表,但是不能用他封裝好的。
語言
C++
思路
首先他已經指出不能使用封裝好的hashmap(如果使用的話,那就沒意義了)。所以我一開始想,上一題用的兩個棧來實現隊列,這次也可以用棧來實現哈希表。結果運行超時,我就???,后來發現根本不用那么麻煩,既然都想到棧了,何不如在想簡單一點,直接用數組呢。。。
所以先定義一個數組a,初值置為隨便一個負數。
-
void add(int key):直接就數組下標和值都用key就好了,所以前提是數組大小得設置夠。
-
void remove(int key):直接令a[key]=一個負數就好了,這樣就不能一一對應,也就相當于把他remove
-
bool contains(int key):看他存不存在,直接查詢是否有a[key]==key,如果有就返回true,否則返回false。
源碼
class MyHashSet {
public:/** Initialize your data structure here. */
long a[1000009]={-10};MyHashSet() {}void add(int key) {a[key]=key;}void remove(int key) {a[key]=-1;}/** Returns true if this set contains the specified element */bool contains(int key) {if(a[key]==key)return true;return false;}
};
?
/*** Your MyHashSet object will be instantiated and called as such:* MyHashSet obj = new MyHashSet();* obj.add(key);* obj.remove(key);* bool param_3 = obj.contains(key);*/
后記
今天的哈希表還算簡單,其實這些都是數組。
總結
以上是生活随笔為你收集整理的LeetCode刷题记录13——705. Design HashSet(easy)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode刷题记录12——232.
- 下一篇: LeetCode刷题记录14——257.