[Leetcode] - 46
4590 단어 DFSpermutationDFS
- permutation은 재귀로 구현 가능
- 매번 다른 숫자를 선택하는것을 반복, 남은 숫자가 없을 때까지 반복
- python 은 객체참조이므로 (대부분) 값을 저장할때 copy해서 저장 '[:]'
- 복잡한 리스트, 객체는 copy.deepcopy 사용
itertools 사용
import itertools
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
ret = list(itertools.permutations(nums))
return ret
dfs 사용
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
ret = []
prev_elements = []
def dfs(elements):
if len(elements) == 0:
ret.append(prev_elements[:])
for e in elements:
next_elements = elements[:]
next_elements.remove(e)
prev_elements.append(e)
dfs(next_elements)
prev_elements.pop()
dfs(nums)
return ret
Author And Source
이 문제에 관하여([Leetcode] - 46), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jisngprk/Leetcode-46저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)