二维矩阵的行、列、斜线特征(二维数组)

1. 行特征

二维 n*m 矩阵,用 xij 表示第 i 行第 j 列的元素。同一行的元素的 i 值是相同的。

例如,上图中绿色格子的数组元素分别是 x41,x42,x43,x44,x45,x46

2. 列特征

二维 n*m 矩阵,用 xij 表示第 i 行第 j 列的元素。同一列的元素的 j 值是相同的。

例如,上图中橙色格子的数组元素分别是 x15,x25,x35,x45,x55

3. 左下到右上斜线特征

二维 n*m 矩阵,用 xij 表示第 i 行第 j 列的元素。矩阵包含了很多条从左下角到右上角方向的斜线,每一条斜线的特点是 i+j 相等。

  1. 上图每一条斜线都标注了一种颜色,每一种颜色的 i+j 都是一个相同的值;

  2. 不同的斜线(颜色) i+j 互不相等。

  3. 最左上角的格子 和 最右下角的格子 是特殊情况,它们所处的斜线只有 1 个格子。

  4. i+j 的取值范围是从 1 到 n+m, 1 出现在最左上角的这一列,n+m 出现在最右下角的这一列

从 xab 出发找同一斜线上的其它元素,可以找 xa+1b-1 和 xa-1b+1 ,行列坐标一个加一,另外一个减一,和就维持不变。当行号等于 1 或者等于 n 或者列号等于 1 或者等于 m 的时候,表示一个方向到了矩阵的边缘位置。

4. 左上到右下斜线特征

二维 n*m 矩阵,用 xij 表示第 i 行第 j 列的元素。矩阵包含了很多条从左上角到右下角方向的斜线,每一条斜线的特点是 i-j 相等。

  1. 上图每一条斜线都标注了一种颜色,每一种颜色的 i-j 都是一个相同的值;

  2. 不同的斜线(颜色) i-j 互不相等。

  3. 最左下角的格子 和 最右上角的格子 是特殊情况,它们所处的斜线只有 1 个格子。

  4. i-j 的取值范围是从 n-1 到 1-m,0 值对应从最左上角格子出发的这一斜线;n-1 对应的是最从左下角格子出发的斜线;1-m 对应的是从最右上角格子出发的斜线。

  5. 往上走,i-j 的值越来越小;往下走 i-j 的值越来越大

从 xab 出发找同一斜线上的其它元素,可以找 xa+1b+1 和 xa-1b-1 ,行列坐标同时加一或者二同时减一,差维持不变。当行号等于 1 或者等于 n 或者列号等于 1 或者等于 m 的时候,表示一个方向到了矩阵的边缘位置。

相关推荐
牛油果子哥q2 小时前
C++内存模型与深浅拷贝万字详解:栈堆静态内存布局、深浅拷贝底层差异、内存泄漏根治、拷贝崩溃踩坑、手写深拷贝实战
java·开发语言·c++
大鹏的NLP博客2 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
ysa0510303 小时前
c++常用自带函数用法与注意
c++·笔记·算法
鸿芯微控科技7 小时前
MFC模拟量信号异常怎么排查?0-5V、4-20mA接线与量程换算
c++·5g·mfc·故障排查·质量流量控制器·4-20ma·模拟量信号
三十岁老牛再出发7 小时前
08.18每日总结
c++·python·numpy·pandas
余额瞒着我当琳9 小时前
C++--vector底层,leetcode118杨辉三角实战,对于传统reserve的坑点,迭代器失效
开发语言·c++
醉城夜风~9 小时前
(超详细)C++多态(Polymorphism)
开发语言·c++
小小龙学IT9 小时前
现代 C++ 内存管理与资源安全深度解析:从 RAII 到所有权模型
c++·安全
欧特克_Glodon10 小时前
OpenCV计算机视觉开发入门与实践<十三>:图像转换之灰度图、二值图
c++·人工智能·opencv·计算机视觉
神仙别闹10 小时前
基于C++ MFC实现动态分区分配存储管理
开发语言·c++·mfc