這是關于排列的 leetcode 問題
基本上我只得到第一個排列
這就是我粗略的遞回樹的樣子:

請幫助我減輕這個問題!
這就是我解決它的方法:
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
output = []
backtrack(nums, [], output)
return output
def backtrack(nums, current, output):
if(len(nums) == 0):
output.append(current)
return
else:
for i in range(len(nums)):
ip1 = nums[:i] nums[i 1:]
op1 = current [nums[i]]
backtrack(ip1, op1, output)
uj5u.com熱心網友回復:
主要問題是這樣的:
ip1.remove(ip1[i])
在迭代串列時,您也在洗掉元素。結果,在幾次迭代之后,串列中的元素數量變得低于當前值,i并且您得到索引錯誤。
作為一種簡單的解決方法,您可以將元素保留在一個單獨的臨時串列中,您可以在其中進行洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526274.html
下一篇:Javascript遞回示例
