首页 > 其他 > 详细

leetcode-46

时间:2019-03-26 21:52:12      阅读:164      评论:0      收藏:0      [点我收藏+]
46. Permutations

Given a collection of distinct integers, return all possible permutations.

Example:

Input: [1,2,3]
Output:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]
package main

import (
    "fmt"
)

func swap(nums []int, i, j int) {
    nums[i], nums[j] = nums[j], nums[i]
}
func permute(nums []int) [][]int {
    length := len(nums) - 1
    var res [][]int
    var n []int
    dfs1(nums, 0, length, &n)
    for m := 0; m < len(n); m = m + len(nums) {
        res = append(res, n[m:m+len(nums)])
    }
    fmt.Println(res)
    return res
}
func dfs1(nums []int, cur, end int, res *[]int) {
    if cur == end {
        *res = append(*res, nums...)
        return
    } else {
        for i := cur; i <= end; i++ {
            swap(nums, cur, i)
            dfs1(nums, cur+1, end, res)
            swap(nums, cur, i)
        }
    }
}

 



leetcode-46

原文:https://www.cnblogs.com/miria-486/p/10604001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!