LeetCode 설명편 46. 전체 정리

LeetCode 설명편 46. 전체 정리

질문 설명

설명하다

문제 해결 아이디어

깊이 우선 순회, 현재 배열 순회, 현재 접두사를 사용하여 깊이 우선 순회로 이동하여 모든 조합을 찾은 다음 결과를 추가하고 마지막으로 반환

솔루션 코드

func permute(nums []int) [][]int {
    
    
    var res = make([][]int, 0)
    var dfs func(nums []int, prefix []int)
    dfs = func(nums []int, prefix []int) {
    
    
        if len(nums) == 1 {
    
    
            res = append(res, append(prefix, nums[0]))
            return
        }
        for i := 0; i < len(nums); i++ {
    
    
            dfs(append(append([]int(nil), nums[:i]...), nums[i+1:]...),
            append(append([]int(nil), prefix...), nums[i]))
        }
    }
    dfs(nums, []int(nil))
    return res
}

Supongo que te gusta

Origin blog.csdn.net/qq_67733273/article/details/133232636
Recomendado
Clasificación