什么是對角地遍歷二維整數切片的慣用方法。負對角線還是正對角線?

這是一個帶有 2d 網格設定的操場。 https://go.dev/play/p/Cpxg4a5HvrD
uj5u.com熱心網友回復:
如果x == y,或者在這種情況下,i == j,那么它是對角線。
func main() {
size := 4
board := make([][]int, size)
for i := range board {
board[i] = append(board[i], make([]int, size)...)
}
for i, row := range board {
for j := range row {
board[i][j] = rand.Intn(9)
if i == j {
log.Println("diagonal:", board[i][j])
}
}
}
for _, row := range board {
fmt.Println(row)
}
}
那會列印
2021/12/21 01:33:59 diagonal: 5
2021/12/21 01:33:59 diagonal: 6
2021/12/21 01:33:59 diagonal: 5
2021/12/21 01:33:59 diagonal: 8
[5 6 2 2]
[4 6 7 8]
[4 6 5 7]
[3 2 4 8]
如果您想要不同的對角線,您可以偏移一個軸,例如x == y 1,或i == j 1
那會列印
2021/12/21 01:38:07 diagonal: 4
2021/12/21 01:38:07 diagonal: 6
2021/12/21 01:38:07 diagonal: 4
[5 6 2 2]
[4 6 7 8]
[4 6 5 7]
[3 2 4 8]
對于逆對角線,需要使用len(board) - i,即
for i, row := range board {
for j := range row {
board[i][j] = rand.Intn(9)
if len(board)-i == j {
log.Println("diagonal:", board[i][j])
}
}
}
印刷
2021/12/21 01:57:30 diagonal: 8
2021/12/21 01:57:30 diagonal: 5
2021/12/21 01:57:30 diagonal: 2
[5 6 2 2]
[4 6 7 8]
[4 6 5 7]
[3 2 4 8]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/388891.html
標籤:去
上一篇:如何將影像URL(存盤在GCS中的影像)轉換為二進制以將影像上傳到Facebook圖形API
下一篇:調度程式每午夜獲取資料
