用Go語言實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃問題的時(shí)候在二維數(shù)組的傳參改變這個(gè)地方有了點(diǎn)疑惑,查了會(huì)兒資料,然后達(dá)到了目的(其實(shí)還是想知道切片的話可不可以二維),所以記錄一下
看代碼吧~
package main
import "fmt"
//n=7
func matrixChainOrder(p []int,m *[7][7]int,s *[7][7]int,n int){
for i:=0;in;i++{
m[i][i] = 0
}
for l:=2;ln;l++{
for i:=1;in-l+1;i++{
j:=i+l-1
m[i][j] = 10000000
for k:=i;k=j-1;k++{
q:=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j]
if qm[i][j]{
m[i][j] = q
s[i][j] = k
}
}
}
}
// fmt.Println(m[1][6])
}
func main(){
p:=[]int {30,35,15,5,10,20,15}
var m [7][7]int
var s [7][7]int
matrixChainOrder(p,m,s,7)
fmt.Println(m[1][6])
}
補(bǔ)充:go數(shù)組作為函數(shù)參數(shù)傳遞
看代碼吧~
func myfun(a *[]int) {
fmt.Print(a)
//a[0] = 5
(*a)[0] = 5
//fmt.Print("here", a, "\n")
}
func test() {
a1 := 1
b1 := 2
var a []*int = []*int{a1, b1}
fmt.Print(a)
}
func main() {
var a []int = []int{1, 2, 3, 4}
myfun(a)
fmt.Print(a)
test()
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Golang數(shù)組的傳遞詳解
- Go語言實(shí)現(xiàn)二維數(shù)組的2種遍歷方式以及案例詳解
- Go語言中函數(shù)的參數(shù)傳遞與調(diào)用的基本方法