Skip to content

Commit cd74e0d

Browse files
committed
Create 0380-insert-delete-getrandom-o1.js
1 parent 2d0e0cc commit cd74e0d

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var RandomizedSet = function() {
2+
this.set = new Set();
3+
};
4+
5+
/**
6+
* @param {number} val
7+
* @return {boolean}
8+
*/
9+
RandomizedSet.prototype.insert = function(val) {
10+
if (!this.set.has(val)) {
11+
this.set.add(val);
12+
return true;
13+
} else {
14+
return false;
15+
}
16+
};
17+
18+
/**
19+
* @param {number} val
20+
* @return {boolean}
21+
*/
22+
RandomizedSet.prototype.remove = function(val) {
23+
return this.set.delete(val);
24+
};
25+
26+
/**
27+
* @return {number}
28+
*/
29+
RandomizedSet.prototype.getRandom = function() {
30+
const keys = Array.from(this.set.keys());
31+
const seed = Math.floor(Math.random() * keys.length);
32+
return keys[seed];
33+
};
34+
35+
/**
36+
* Your RandomizedSet object will be instantiated and called as such:
37+
* var obj = new RandomizedSet()
38+
* var param_1 = obj.insert(val)
39+
* var param_2 = obj.remove(val)
40+
* var param_3 = obj.getRandom()
41+
*/

0 commit comments

Comments
 (0)