题解 | #没有重复项数字的全排列#

没有重复项数字的全排列

https://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param nums int整型一维数组
 * @return int整型二维数组
 */
func permute( nums []int ) [][]int {
    // write code here
    var res [][]int
    var path []int
    used := make([]bool, len(nums))
    backtrack(nums,path,&res,used)
    return res
}

func backtrack(nums []int, path []int,res *[][]int,used []bool){    
    if len(nums) == len(path) {
        temp := make([]int, len(path))
        copy(temp, path)
        *res = append(*res, temp)
        return
    }
    for i, num := range nums {
        if  used[i] {
            continue
        }
        path = append(path, num)
        used[i] = true
        backtrack(nums, path, res, used)
        path = path[:len(path) -1 ]
        used[i] = false
    }
}

全部评论

相关推荐

就是说这不对口的实习还有必要加么,不加就是纯纯三无
Java抽象小篮子:实习经历得好好包装一下,可以看看我发过的包装帖子
点赞 评论 收藏
分享
Dream_coding:你是不是只投大厂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务