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

1. 行特征

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

例如,上图中绿色格子的数组元素分别是 x[4][1],x[4][2],x[4][3],x[4][4],x[4][5],x[4][6]。

2. 列特征

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

例如,上图中橙色格子的数组元素分别是 x[1][5],x[2][5],x[3][5],x[4][5],x[5][5]。

3. 左下到右上斜线特征

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

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

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

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

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

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

4. 左上到右下斜线特征

二维 n*m 矩阵,用 x[i][j] 表示第 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 的值越来越大

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

相关推荐
qq_4663024511 小时前
vs2008 Hotlink实时数据读取
c++·qt
阿达King哥12 小时前
关于C++中的typedef typename的含义
c++
咔咔咔的13 小时前
3652. 按策略买卖股票的最佳时机
c++
欧特克_Glodon15 小时前
基于Qt+VTK实现的CT/MR影像浏览工具,支持体渲染及体模型剪裁
c++·qt·vtk·体渲染·裁剪
似水এ᭄往昔16 小时前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
charlie11451419116 小时前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
moonquakeTT16 小时前
C++:深拷贝与浅拷贝
c++
程序员zgh16 小时前
C语言 指针用法与区别(指针常量、常量指针、指针函数、函数指针、二级指针)
c语言·开发语言·jvm·c++
冉佳驹17 小时前
C++ ——— 仿函数的使用、继承方式、赋值转换规则、菱形继承与虚继承
c++·继承·virtual·仿函数·菱形继承·模板特化·虚继承
咔咔咔的17 小时前
955. 删列造序 II
c++