Shuffle a set of numbers without duplicates. Implement the Solution class:
Solution(int[] nums) Initializes the object with the integer array nums.
int[] reset() Resets the array to its original configuration and returns it.
int[] shuffle() Returns a random shuffling of the array.
- code0
class Solution:
def __init__(self, nums: List[int]):
self.origin = nums[:]
def reset(self) -> List[int]:
"""
Resets the array to its original configuration and return it.
"""
return self.origin
def shuffle(self) -> List[int]:
"""
Returns a random shuffling of the array.
"""
nums = self.origin[:]
random.shuffle(nums)
return nums
- code1
class Solution:
def __init__(self, A):
self.A = A
def reset(self):
'''
Resets the array to its original configuration and return it.
'''
return list(self.A)
def shuffle(self):
'''
Returns a random shuffling of the array.
'''
A = list(self.A)
B = []
while A:
i = random.randint( 0 , len(A) - 1 )
A[i], A[-1] = A[-1], A[i]
B.append( A.pop() )
return B
- c2
from random import shuffle
class Solution(object):
def __init__(self, nums):
"""
:type nums: List[int]
"""
self.original= list(nums)
self.nums = nums
def reset(self):
"""
Resets the array to its original configuration and return it.
:rtype: List[int]
"""
return self.original
def shuffle(self):
"""
Returns a random shuffling of the array.
:rtype: List[int]
"""
temp = list(self.nums)
for i in range(len(self.nums)):
index = random.randrange(len(temp))
# index = random.randint(0, leng-1)
self.nums[i] = temp[index]
del temp[index]
return self.nums