解题思路
利用List组合Map实现
代码
class RandomizedSet {
Map<Integer,Integer> map;
List<Integer> list;
public RandomizedSet() {
map = new HashMap<>();
list = new ArrayList<>();
}
public boolean insert(int val) {
if (map.containsKey(val)){
return false;
}
map.put(val,list.size());
list.add(val);
return true;
}
public boolean remove(int val) {
if (!map.containsKey(val)){
return false;
}
int last = list.get(list.size()-1);
int index = map.get(val);
list.set(index,last);
map.put(last,index);
list.remove(list.size()-1);
map.remove(val);
return true;
}
public int getRandom() {
return list.get(new Random().nextInt(list.size()));
}
}
|