(我是 Go 的新手。)我正在研究这个 leetcode 问题:https ://leetcode.com/problems/pascals-triangle/package mainimport "fmt"func main() { arrRes := [][]int{} gen(5, arrRes) fmt.Println(arrRes) }func gen(numRows int, arrRes [][]int) { build(numRows, 0, arrRes)}func build(n int, level int, arrRes [][]int) { if(n == level) { return } arr := []int{} if level == 0 { arr = append(arr, 1) } else if level == 1 { arr = append(arr, 1, 1) } else { // get it out tmp := arrRes[level-1] arr = comb(tmp) } arrRes = append(arrRes, arr) build(n, level+1, arrRes)}func comb(arr []int) []int{ // arr type init tmpArr := []int{1} for i:=1; i<len(arr); i++ { sum := arr[i-1] + arr[i] tmpArr = append(tmpArr, sum) } // go use val, not ref tmpArr = append(tmpArr, 1) return tmpArr;}我想定义一个累加变量arrRes := [][]int{}并继续传递给递归函数。我认为 Go 是按值传递而不是按引用传递。有没有办法保持这种模式?我有两种替代方法:传递一个全局变量。将二维数组传递给func然后返回新的二维数组。https://github.com/kenpeter/go_tri/blob/master/tri_global.gohttps://github.com/kenpeter/go_tri/blob/master/tri.go
目前暂无任何回答
- 0 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消