classSolution{public:Solution(vector<int>&nums):nums(move(nums)){}/** Resets the array to its original configuration and return it. */vector<int>reset(){returnnums;}/** Returns a random shuffling of the array. */vector<int>shuffle(){vector<int>A(nums);for(inti=A.size()-1;i>0;--i){constintj=rand()%(i+1);swap(A[i],A[j]);}returnA;}private:vector<int>nums;};
classSolution{publicSolution(int[]nums){this.nums=nums;}/** Resets the array to its original configuration and return it. */publicint[]reset(){returnnums;}/** Returns a random shuffling of the array. */publicint[]shuffle(){int[]A=nums.clone();for(inti=A.length-1;i>0;--i){finalintj=rand.nextInt(i+1);swap(A,i,j);}returnA;}privateint[]nums;privateRandomrand=newRandom();privatevoidswap(int[]A,inti,intj){finalinttemp=A[i];A[i]=A[j];A[j]=temp;}}
classSolution:def__init__(self,nums:List[int]):self.nums=numsdefreset(self)->List[int]:""" Resets the array to its original configuration and return it. """returnself.numsdefshuffle(self)->List[int]:""" Returns a random shuffling of the array. """A=self.nums.copy()foriinrange(len(A)-1,0,-1):j=randint(0,i)A[i],A[j]=A[j],A[i]returnA