File tree 3 files changed +97
-4
lines changed
3 files changed +97
-4
lines changed Original file line number Diff line number Diff line change 1
1
# LeetCode Algorithms
2
2
3
- ![ problems-solved] ( https://img.shields.io/badge/Problems%20Solved-172 /2081-1f425f.svg )
4
- ![ problems-solved-java] ( https://img.shields.io/badge/Java-172 /2081-1abc9c.svg )
5
- ![ problems-solved-python] ( https://img.shields.io/badge/Python-172 /2081-1abc9c.svg )
3
+ ![ problems-solved] ( https://img.shields.io/badge/Problems%20Solved-173 /2081-1f425f.svg )
4
+ ![ problems-solved-java] ( https://img.shields.io/badge/Java-173 /2081-1abc9c.svg )
5
+ ![ problems-solved-python] ( https://img.shields.io/badge/Python-173 /2081-1abc9c.svg )
6
6
[ ![ PRs Welcome] ( https://img.shields.io/badge/PRs-welcome-brightgreen.svg )] ( CONTRIBUTING.md )
7
7
[ ![ cp] ( https://img.shields.io/badge/also%20see-Competitve%20Programming-1f72ff.svg )] ( https://github.com/anishLearnsToCode/competitive-programming )
8
8
193
193
| 700 | [ Search in a Binary Search Tree] ( https://leetcode.com/problems/search-in-a-binary-search-tree ) | [ ![ Java] ( assets/java.png )] ( src/SearchInBinarySearchTree.java ) [ ![ Python] ( assets/python.png )] ( python/search_in_binary_search_tree.py ) |
194
194
| 703 | [ Kth Largest Element in a Stream] ( https://leetcode.com/problems/kth-largest-element-in-a-stream ) | [ ![ Java] ( assets/java.png )] ( src/KthLargestElementInAStream.java ) [ ![ Python] ( assets/python.png )] ( python/k_th_largest_element_in_a_stream.py ) |
195
195
| 704 | [ Binary Search] ( https://leetcode.com/problems/binary-search ) | [ ![ Java] ( assets/java.png )] ( src/BinarySearch.java ) [ ![ Python] ( assets/python.png )] ( python/binary_search.py ) |
196
- | 705 | [ Design HashSet] ( https://leetcode.com/problems/design-hashset ) | |
196
+ | 705 | [ Design HashSet] ( https://leetcode.com/problems/design-hashset ) | [ ![ Java ] ( assets/java.png )] ( src/DesignHashSet.java ) [ ![ Python ] ( assets/python.png )] ( python/design_hash_set.py ) |
197
197
| 706 | [ Design HashMap] ( https://leetcode.com/problems/design-hashmap ) | |
198
198
| 709 | [ To Lower Case] ( https://leetcode.com/problems/to-lower-case ) | |
199
199
| 716 | [ Max Stack] ( https://leetcode.com/problems/max-stack ) | |
Original file line number Diff line number Diff line change
1
+ class Bucket :
2
+ def __init__ (self ):
3
+ self .list = []
4
+
5
+ def contains (self , element : int ) -> bool :
6
+ return element in self .list
7
+
8
+ def add (self , element : int ) -> None :
9
+ self .list .append (element )
10
+
11
+ def remove (self , element : int ) -> None :
12
+ if self .contains (element ):
13
+ self .list .remove (element )
14
+
15
+
16
+ class MyHashSet :
17
+ def __init__ (self ):
18
+ self ._initial_size = 100
19
+ self .size = 0
20
+ self .buckets = [Bucket () for _ in range (self ._initial_size )]
21
+
22
+ def add (self , key : int ) -> None :
23
+ hashCode = key % len (self .buckets )
24
+ if not self .buckets [hashCode ].contains (key ):
25
+ self .buckets [hashCode ].add (key )
26
+ self .size += 1
27
+
28
+ def remove (self , key : int ) -> None :
29
+ self .buckets [key % len (self .buckets )].remove (key )
30
+
31
+ def contains (self , key : int ) -> bool :
32
+ return self .buckets [key % len (self .buckets )].contains (key )
Original file line number Diff line number Diff line change
1
+ import java .util .LinkedList ;
2
+ import java .util .Queue ;
3
+
4
+ public class DesignHashSet {
5
+ class MyHashSet {
6
+
7
+ private static final int INITIAL_SIZE = 100 ;
8
+ private final Bucket [] buckets ;
9
+ private int size = 0 ;
10
+
11
+ public MyHashSet () {
12
+ this .buckets = new Bucket [INITIAL_SIZE ];
13
+ initializeBuckets ();
14
+ }
15
+
16
+ public MyHashSet (int initialSize ) {
17
+ this .buckets = new Bucket [initialSize ];
18
+ initializeBuckets ();
19
+ }
20
+
21
+ public void add (int element ) {
22
+ int hash = element % buckets .length ;
23
+ if (!buckets [hash ].contains (element )) {
24
+ buckets [hash ].add (element );
25
+ this .size ++;
26
+ }
27
+ }
28
+
29
+ public void remove (int element ) {
30
+ buckets [element % buckets .length ].remove (element );
31
+ }
32
+
33
+ public boolean contains (int element ) {
34
+ return buckets [element % buckets .length ].contains (element );
35
+ }
36
+
37
+ private void initializeBuckets () {
38
+ for (int index = 0 ; index < buckets .length ; index ++) {
39
+ buckets [index ] = new Bucket ();
40
+ }
41
+ }
42
+
43
+ private static class Bucket {
44
+ Queue <Integer > list = new LinkedList <>();
45
+
46
+ public boolean contains (int element ) {
47
+ return list .contains (element );
48
+ }
49
+
50
+ public void add (int element ) {
51
+ if (!this .contains (element )) {
52
+ list .add (element );
53
+ }
54
+ }
55
+
56
+ public void remove (int element ) {
57
+ list .remove (element );
58
+ }
59
+ }
60
+ }
61
+ }
You can’t perform that action at this time.
0 commit comments