题目链接:https://leetcode.com/problems/shuffle-an-array/
Shuffle a set of numbers without duplicates.
Example:
// Init an array with set 1, 2, and 3. int[] nums = {1,2,3}; Solution solution = new Solution(nums); // Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned. solution.shuffle(); // Resets the array back to its original configuration [1,2,3]. solution.reset(); // Returns the random shuffling of array [1,2,3]. solution.shuffle();
class Solution{
public:
Solution(vector<int> nums)
{
this->nums=nums;
this->resetNums=nums;
this->size=nums.size();
}
vector<int> reset()
{
return resetNums;
}
vector<int> shuffle()
{
if(size==0) return {};
for(int i=0;i<size;i++)
{
int pos=rand()%size;
swap(nums[i],nums[pos]);
}
return nums;
}
private:
vector<int> nums,resetNums;
int size;
};