Рубрики
Без рубрики

Проблема перестановки LeetCode: решение Python

Учитывая набор различных целых чисел, верните все возможные перестановки. Пример: вход: [1, 2, 3] … Tagged с Python, рекурсием.

Учитывая набор различных целых чисел, верните все возможные перестановки.

Пример: вход: [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”