LeetCode:384. 打乱数组
class Solution {
private:
vector<int>nums;
mt19937 gen;//mt19937 是 C++11 标准库中的一个伪随机数生成器
public:
Solution(vector<int>& nums) : nums(nums),gen(random_device{}()){}
vector<int> reset() {
return nums;
}
vector<int> shuffle() {
vector<int>copy=nums;
int n=copy.size();
for(int i=0;i<n;i++){
int r=i+gen()%(n-i);
swap(copy[i],copy[r]);
}
return copy;
}
};
