| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | //package main//import (//	"fmt"//	"math/rand"//)type Solution struct {	arr []int	sol []int}func Constructor(nums []int) Solution {	solution := Solution{arr: nums}	solution.sol = make([]int, len(nums))	copy(solution.sol, nums)	return solution}/** Resets the array to its original configuration and return it. */func (this *Solution) Reset() []int {	copy(this.sol, this.arr)	return this.arr}/** Returns a random shuffling of the array. */func (this *Solution) Shuffle() []int {	n := len(this.arr)	for i := 0; i < n; i++ {		j := i + rand.Intn(n-i)		this.sol[i], this.sol[j] = this.sol[j], this.sol[i]	}	return this.sol}//type tuple3 struct {//	_1 int//	_2 int//	_3 int//}//func main() {//	sol := Constructor([]int{1, 2, 3})//	m := make(map[tuple3]int)//	for i := 0; i < 10000; i++ {//		arr := sol.Shuffle()//		m[tuple3{arr[0], arr[1], arr[2]}]++//	}//	fmt.Println(m)//}/** * Your Solution object will be instantiated and called as such: * obj := Constructor(nums); * param_1 := obj.Reset(); * param_2 := obj.Shuffle(); */
 |