golang的一个递归给切片赋值的代码,求解决
时间: 2019-03-19来源:博客园
前景提要
golang的一个递归给切片赋值的代码,求解决
0 [待解决问题] 一个全排列的问题,用递归回溯给切片赋值,最后输出的是最后一次递归的数组。怎么解决这个问题,困扰了一上午。 package main import ( "fmt" ) func swap(nums []int, i, j int) { temp := nums[i] nums[i] = nums[j] nums[j] = temp } func permute(nums []int) [][]int { length := len(nums) - 1 var res [][]int dfs1(nums, 0, length, &res) 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) } } } func main() { nums := []int{4, 5, 6} permute(nums) }
输出的
[[4 5 6] [4 5 6] [4 5 6] [4 5 6] [4 5 6] [4 5 6]] 喜欢沧月的二福君 | 菜鸟二级 | 园豆: 202
提问于:2019-03-19 14:47 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题

清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行