C++程序 打印矩阵边界元素
给定一个n x m的矩阵。打印矩阵的边界元素。边界元素是指不被四个方向的元素包围的元素,即第一行,第一列,最后一行和最后一列的元素。
示例:
输入:
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
输出:
1 2 3 4
5 8
1 4
5 6 7 8
说明: 打印了矩阵的边界元素。
输入:
1 2 3
5 6 7
1 2 3
输出:
1 2 3
5 7
1 2 3
说明: 打印了矩阵的边界元素。
方法: 思路很简单。遍历矩阵,检查每个元素是否位于边界上,如果是,则打印该元素,否则打印空格字符。
- 算法 :
- 从头到尾遍历数组。
- 将外部循环指向行,内部循环遍历行中的元素。
- 如果元素在矩阵的边界上,则打印该元素,即如果元素在第一行、第一列、最后一行或最后一列,则打印该元素。
- 如果元素不是边界元素,则打印一个空格。
- 实现:
输出:
- 复杂度分析:
- 时间复杂度: O(n*n),其中n为数组大小。这是通过矩阵的单次遍历实现的。
- 空间复杂度: O(1)。 因为只需要常量空间。
查找边界元素的总和
给定一个n x m的矩阵。找到矩阵的边界元素的总和。边界元素是指四个方向没有元素环绕的元素,即第一行,第一列,最后一行和最后一列的元素。
示例:
输入:
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
输出: 54
说明: 矩阵的边界元素
1 2 3 4
5 8
1 4
5 6 7 8
Sum = 1+2+3+4+5+8+1+4+5+6+7+8 =54
输入:
1 2 3
5 6 7
1 2 3
输出: 24
说明: 矩阵的边界元素
1 2 3
5 7
1 2 3
Sum = 1+2+3+5+7+1+2+3 = 24
方法: 此想法很简单。遍历矩阵,并检查每个元素是否位于边界上,如果是,则将它们相加以获取所有边界元素的总和。
- 算法:
- 创建一个变量来存储总和,并从开始到结束遍历数组。
- 将外循环分配为指向行的指针,将内部循环遍历行的元素。
- 如果元素位于矩阵的边界上,则将该元素添加到总和中,即如果元素位于第一行、第一列、最后一行、最后一列
- 打印总和。
- 实现:
// C++程序查找矩阵的边界元素之和。
输出:
- 复杂度分析:
- 时间复杂度: O(n*n),其中n是数组的大小。 这是通过对矩阵的单次遍历实现的。
- 空间复杂度: O(1)。 由于只需要一个常量空间。