384. Shuffle an Array
Содержание
Задача
Реализуйте класс, который принимает массив чисел в конструкторе и предоставляет метод для их случайного перемешивания, а также метод для возвращения исходного массива.
Подсказки
Для создания случайного порядка элементов можно использовать алгоритм Фишера-Йетса или другие методы перемешивания.
Подход
- Инициализация: Сохранить исходный массив в переменной класса для дальнейшего использования.
- reset(): Вернуть исходный массив.
- shuffle(): Вернуть перемешанный массив.
Из всех возможных подходов к решению этой задачи, наиболее простым является использование встроенного метода random.shuffle()
из Python стандартной библиотеки для перемешивания массива. В этом случае, вы просто создаете копию исходного массива и применяете к ней метод random.shuffle()
.
Алгоритм
- Сохранить исходный массив в переменной класса.
- В методе
reset()
просто вернуть исходный массив. - В методе
shuffle()
создать копию исходного массива, перемешать её и вернуть.
Решение
import random
class Solution:
def __init__(self, nums):
self.original = nums
def reset(self):
return self.original
def shuffle(self):
shuffled = self.original.copy() # создаем копию исходного массива
random.shuffle(shuffled) # перемешиваем копию
return shuffled