2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果不使用 for 語句,我該怎么辦?有什么想法嗎?
遞歸調(diào)用
package main
import (
"fmt"
)
func main() {
list := [][]int{
{2, 3, 4},
{6, 8, 1},
}
reverse(list)
fmt.Println(list)
}
func reverse(d [][]int) {
j := len(d) - 1
i := 0
var h func()
h = func() {
if i<j {
d[i], d[j] = d[j], d[i]
i, j = i+1, j-1
h()
}
}
h()
}
轉(zhuǎn)到語句
package main
import (
"fmt"
)
func main() {
list := [][]int{
{2, 3, 4},
{6, 8, 1},
}
reverse(list)
fmt.Println(list)
}
func reverse(d [][]int) {
j := len(d) - 1
i := 0
START:
if i < j {
d[i], d[j] = d[j], d[i]
i, j = i+1, j-1
goto START
}
}

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
在這里使用循環(huán) - 是最簡單的解決方案。for
PS:您可以嘗試使用像這樣的硬編碼解決方案:
list2 := [][]int{list[1], list[0]}
但它是黑客而不是解決方案,
所以最好使用基于循環(huán)的漂亮簡潔的程序化解決方案。for
- 2 回答
- 0 關(guān)注
- 80 瀏覽
添加回答
舉報(bào)