[LeetCode] 46. Permutation
7377 ワード
🔦 提问链接
🔊
파이썬 알고리즘 인터뷰
冊の本を参考にしました.▼▼▼▼草
私が前に開いた方法で、各ステップの選択値をtmpリストに保存して、次のステップでtmpリストにない値だけを選択します.
リストから選択した値を除外しながら、本に示すように操作を続行します.
🛠 コード#コード#
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
def dfs(index):
if len(tmp) == len(nums):
cp = tmp[:] # 파이썬의 객체 참조 특성으로 인해 꼭 복사를 해줘야 한다.d
result.append(cp)
return
for i in range(len(nums)):
if nums[i] not in tmp:
tmp.append(nums[i])
dfs(i + 1)
tmp.pop()
result = []
tmp = []
dfs(0)
print(result)
return result
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
def dfs(elements):
if len(elements) == 0:
result.append(prev_elements[:])
for e in elements:
next_elements = elements[:]
next_elements.remove(e)
prev_elements.append(e)
dfs(next_elements)
prev_elements.pop()
result = []
prev_elements = []
dfs(nums)
return result
📝 整理する
🎈 リファレンス
ブックリンク
Reference
この問題について([LeetCode] 46. Permutation), 我々は、より多くの情報をここで見つけました https://velog.io/@pyh8618/LeetCode-46.-Permutationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol