Implement the RandomizedSet class:
You must implement the functions of the class such that each function works in average O(1) time complexity.
HashSet을 이용해 구현하겠다.
getRandom() 메서드는 Random 객체의 nextInt(set.size()) 메서드를 이용해서 랜덤한 index를 구한 후, set을 이용해서 ArrayList을 만들어서 index에 해당하는 값을 리턴한다.
class RandomizedSet {
private final HashSet<Integer> set = new HashSet<>();
private final Random random = new Random();
public RandomizedSet() {
}
public boolean insert(int val) {
if (set.contains(val)) {
return false;
}
set.add(val);
return true;
}
public boolean remove(int val) {
if (set.contains(val)) {
set.remove(val);
return true;
}
return false;
}
public int getRandom() {
int idx = random.nextInt(set.size());
ArrayList<Integer> list = new ArrayList<>(set);
return list.get(idx);
}
}