为了账号安全,请及时绑定邮箱和手机立即绑定

如何将累加器传递给递归函数?

如何将累加器传递给递归函数?

Go
心有法竹 2023-04-17 16:36:28
(我是 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信