一、题目
二、思路
三、代码
class Solution {
public:
Solution(vector<int>& nums) {
this->nums = nums;
this->original.resize(nums.size());
copy(nums.begin(),nums.end(),original.begin());
}
vector<int> reset() {
copy(original.begin(),original.end(),nums.begin());
return nums;
}
vector<int> shuffle() {
vector<int> shuffled = vector<int>(nums.size());
list<int> lst(nums.begin() , nums.end());
for(int i = 0 ; i < nums.size() ; ++i){
int j = rand()%(lst.size());
auto it = lst.begin();
advance(it , j);
shuffled[i] = *it;
lst.erase(it);
}
copy(shuffled.begin(),shuffled.end(),nums.begin());
return nums;
}
private:
vector<int> nums;
vector<int> original;
};
未完待续