Учитывая набор различных целых чисел, верните все возможные перестановки.
Пример: вход: [1, 2, 3] Выход: [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1 , 2], [3,2,1]]
Проблема LeetCode можно найти здесь
Нам нужно понять, что такое перестановка; способ, которым можно заказать набор вещей. Таким образом, наш ввод чисел, мы должны найти каждую возможную комбинацию, начиная с первого числа, затем второе число, а затем.
То, как я подошел к этой проблеме, было выяснить, как я хотел изначально пройти через весь входной массив.
Мы хотим следить
for i in range(len(array)): newArray = array[:i] + array[i+1:] newCurrentArray = currentArray + [array[i]]
Это наш основной алгоритм, который постоянно будет искать различные перестановки. Теперь мы должны позвонить этому рекурсивно, чтобы получить каждую перестановку
def getPermutations(array): result = [] helper(array, [], result) return result def helper(array, current, permutations): if not len(array) and len(current): oermutations.append(current) else: for i in range(len(array)): newArr = array[:i] + array[i+1:] newCurr = current + [array[i]] helper(newArr, newCurr, permutations)
Оригинал: “https://dev.to/jabermudez11/leetcode-permutations-problem-python-solution-5g8g”