LeetCode 705:ハッシュセット設計デザインのHashSet

トピック:

ハッシュセットライブラリーの設計に組み込まれ、任意のハッシュテーブルを使用しないでください

具体的には、あなたのデザインには、以下の機能が含まれている必要があり

  • add(value):ハッシュセットに値を挿入します。
  • contains(value) :このハッシュコレクションの存在の値を返します。
  • remove(value):与えられたハッシュ値をコレクションから削除されます。ハッシュ値が設定されていない場合、何もしません。

任意の組み込みのハッシュテーブルのライブラリを使用せずに、HashSetのを設計します。

具体的には、あなたのデザインは、これらの機能を含める必要があります。

  • add(value):HashSetのに値を挿入します。
  • contains(value) :値はHashSetの中に存在するかどうかを返します。
  • remove(value):HashSetの中で値を削除します。値がHashSetの中に存在しない場合は、何もしません。

例:

MyHashSet hashSet = new MyHashSet();
hashSet.add(1);         
hashSet.add(2);         
hashSet.contains(1);    // 返回 true
hashSet.contains(3);    // 返回 false (未找到)
hashSet.add(2);          
hashSet.contains(2);    // 返回 true
hashSet.remove(2);          
hashSet.contains(2);    // 返回  false (已经被删除)

注意:

  • すべての値がある[1, 1000000]範囲内。
  • 操作の総数[1, 10000]範囲。
  • 内蔵されたハッシュセットのライブラリを使用しないでください。

注意:

  • すべての値の範囲になります[0, 1000000]
  • 操作の数は、の範囲であろう[1, 10000]
  • 内蔵のHashSetのライブラリを使用しないでください。

問題解決のアイデア:

タイトル明らかデータサイズとデータセットのサイズを定義して、範囲INTの整数であり、最も簡単な解決策は、長さ10000001ブール配列であるので、インデックス位置は、データ値のサイズです。確かに、ハッシュセットにおける代表者の数があるかどうかはFalse。これは、ハッシュ関数の最も簡単なハッシュである必要があります。y = X

コード:

Javaの:

class MyHashSet {
    private boolean[] hashSet;

    /**
     * Initialize your data structure here.
     */
    public MyHashSet() {
        this.hashSet = new boolean[10000001];
    }

    public void add(int key) {
        hashSet[key] = true;
    }

    public void remove(int key) {
        hashSet[key] = false;
    }

    /**
     * Returns true if this set contains the specified element
     */
    public boolean contains(int key) {
        return hashSet[key];
    }
}

Pythonの:

class MyHashSet:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.hash_set = [False]*1000001

    def add(self, key: int) -> None:
        self.hash_set[key] = True

    def remove(self, key: int) -> None:
        self.hash_set[key] = False

    def contains(self, key: int) -> bool:
        """
        Returns true if this set contains the specified element
        """
        return self.hash_set[key]

マイクロチャンネル公衆番号へようこそ注意:愛のバグを書きます
ここに画像を挿入説明

おすすめ

転載: www.cnblogs.com/zhangzhe532/p/11587274.html