Skip to content

矩阵遍历 ​

查找与遍历

说明 ​

按行列坐标访问二维数据;复杂度与元素总数成正比。

分析 ​

外层循环访问每一行,内层访问该行的每个元素,所以不要求矩阵必须是规则矩形。示例把所有值累加,工作量等于单元格总数。

以二维切片[[1,2],[3,4]]为例,累加结果依次是1、3、6、10。下一行若长度不同,必须使用该行自己的长度。二维切片的各行可以分别分配,行列相邻不保证物理地址连续。

查看图表代码

适用前提与边界 ​

涉及邻居搜索时还要检查行列边界,尤其是各行长度不同的情况。 空矩阵或空行的和为0;不规则行长度合法,累计和仍受int范围限制。

示例输入与调用 ​

go
fmt.Println(MatrixSum([][]int{{1, 2}, {3, 4}}))

运行输出 ​

text
10

完整 Go 示例 ​

go
package main

import "fmt"

func MatrixSum(grid [][]int) int {
	sum := 0
	for _, row := range grid {
		for _, x := range row {
			sum += x
		}
	}
	return sum
}

func main() {
	fmt.Println(MatrixSum([][]int{{1, 2}, {3, 4}}))
}

继续阅读