【发布时间】:2022-01-21 05:41:13
【问题描述】:
我正在尝试确定我创建的该算法的时间和空间复杂度,以在 Python 中查找数组的所有排列。时间复杂度是否为 O(sum_{k=1}^N P(n,k)) 其中 P(n,k) 是具有 k 个因子的置换?
class Solution:
def permute(self, vals):
answer = [vals]
def backtrack(i, curr_arr):
if i >= len(vals):
return
curr_val = curr_arr[i]
for j in range(i + 1, len(vals)):
permutation = curr_arr.copy()
temp_val = curr_arr[j]
permutation[j] = curr_val
permutation[i] = temp_val
answer.append(permutation)
backtrack(i + 1, permutation)
backtrack(i + 1, curr_arr)
backtrack(0, vals)
return answer
【问题讨论】:
标签: python algorithm time-complexity backtracking