对角线遍历矩阵模板

主对角线方式遍历矩阵

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;

const int N = 510;

int t, m[N][N];

int diagonalTraverse(int matrix[][N], int n) {
    int rows = n;
    if (rows == 0) return 0;
    int cols = n;

    int sum = 0;
    // 遍历矩阵的所有对角线
    for (int d = 0; d < rows + cols - 1; ++d) {
        // 每条对角线的起始点
        int row = max(0, d - cols + 1);
        int col = max(0, cols - d - 1);

        int tmp = 0;    //可修改
        // 打印当前对角线上的所有元素
        while (row < rows && col < cols) {
            tmp = min(tmp, matrix[row][col]);   //可修改
            ++row;
            ++col;
        }
        sum += abs(tmp);   // 可修改
    }
    return sum;
}

int main()
{
	cin >> t;
	while (t--)
	{
		int n; scanf("%d", &n);
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
				scanf("%d", &m[i][j]);
        int sum = diagonalTraverse(m, n);
        printf("%d\n", sum);
	}
	return 0;
}

副对角线方式遍历矩阵

cpp 复制代码
void diagonalTraverse(vector<vector<int>>& matrix) {
    int rows = matrix.size();
    if (rows == 0) return;
    int cols = matrix[0].size();

    // 遍历矩阵的所有对角线
    for (int d = 0; d < rows + cols - 1; ++d) {
        // 每条对角线的起始点
        int row = max(0, d - cols + 1);
        int col = min(d, cols - 1);

        // 打印当前对角线上的所有元素
        while (row < rows && col >= 0) {
            cout << matrix[row][col] << " ";
            ++row;
            --col;
        }
    }
}
相关推荐
快手技术5 分钟前
AAAI 2026|全面发力!快手斩获 3 篇 Oral,12 篇论文入选!
前端·后端·算法
颜酱7 分钟前
前端算法必备:滑动窗口从入门到很熟练(最长/最短/计数三大类型)
前端·后端·算法
做科研的周师兄9 分钟前
【MATLAB 实战】栅格数据 K-Means 聚类(分块处理版)—— 解决大数据内存溢出、运行卡顿问题
人工智能·算法·机器学习·matlab·kmeans·聚类
X在敲AI代码9 分钟前
leetcodeD3
数据结构·算法
码农小韩17 分钟前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
CoderCodingNo27 分钟前
【GESP】C++五级/四级练习(双指针/数学) luogu-P1147 连续自然数和
开发语言·c++·算法
颜酱30 分钟前
前端算法必备:双指针从入门到很熟练(快慢指针+相向指针+滑动窗口)
前端·后端·算法
Wect33 分钟前
LeetCode 274. H 指数:两种高效解法全解析
算法·typescript
Q741_14734 分钟前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
Hello.Reader41 分钟前
PyFlink DataStream Operators 算子分类、函数写法、类型系统、链路优化(Chaining)与工程化踩坑
前端·python·算法