zoukankan      html  css  js  c++  java
  • golang算法——leetcode-46

    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)
            }
        }
    }


    https://necydcy.me/
  • 相关阅读:
    day06
    样式表
    框架&样式表
    表单
    用表格制作百度首页
    汉企教育实训第第二天
    汉企教育实训第一天感想
    BootStrap前端框架
    MySQL存储过程、存储函数介绍
    日常记录
  • 原文地址:https://www.cnblogs.com/miria-486/p/10604001.html
Copyright © 2011-2022 走看看