关键是random() 的函数。
class RandomizedSet {
private:
map<int,int> m;
public:
/** Initialize your data structure here. */
RandomizedSet() {
m.clear();
}
/** Inserts a value to the set. Returns true if the set did not already contain the specified element. */
bool insert(int val) {
if(m.find(val) == m.end()) {
m[val] = 1;
return true;
}
return false;
}
/** Removes a value from the set. Returns true if the set contained the specified element. */
bool remove(int val) {
if(m.find(val) == m.end()) {
return false;
} else {
m.erase(val);
return true;
}
}
/** Get a random element from the set. */
int getRandom() {
int index = random() % m.size();
map<int,int>::iterator it = m.begin();
for(int i=0;i<index;i++) {
it++;
}
return it->first;
}
};