矩阵遍历
查找与遍历
说明
按行列坐标访问二维数据;复杂度与元素总数成正比。
分析
外层循环访问每一行,内层访问该行的每个元素,所以不要求矩阵必须是规则矩形。示例把所有值累加,工作量等于单元格总数。
以二维切片[[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}}))
}继续阅读
- 系统学习
- 系统学习
- 系统学习