C++程序打印矩阵的所有非边界元素


矩阵是二维数组。位于边缘的元素称为边界元素,位于矩阵内部而非边缘的元素称为非边界元素。本文将讨论如何打印矩阵的非边界元素。

问题描述

给定一个矩阵,我们必须打印矩阵中存在的所有非边界元素。矩阵中存在行和列。水平线称为行,垂直线称为列。以下是一些示例,以便更清楚地理解问题。

示例1

输入

1 2 3 4 5 6 7 8 9

输出

5

示例2

输入

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

输出

8 9 10 11 14 15 16 17 20 21 22 23 26 27 28 29

方法

此方法包括以下步骤:

  • 检查矩阵是否只有一行或一列。如果为真,则矩阵中没有边界元素。
  • 识别边界元素
    对于行,边界元素存在于第一行(行 0)或最后一行(行 = 行数 - 1)。
    对于列,边界元素存在于第一列(列 0)或最后一列(列 = 列数 - 1)。
  • 遍历矩阵并仅打印非边界元素,跳过已识别的边界元素。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

C++程序打印矩阵的所有非边界元素

Open Compiler
#include <bits/stdc++.h> using namespace std; void nonBoundaryElements(int rows, int cols, int matrix[5][6]) { // Check edge case if (rows < 3 || cols < 3) { cout << "No non-boundary elements exist in the matrix." << endl; return; } // Skip row elements for (int i = 1; i < rows - 1; i++) { // Skip column elements for (int j = 1; j < cols - 1; j++) { cout << matrix[i][j] << " "; } cout << endl; } } int main() { int rows = 5, cols = 6; int matrix[5][6] = { {1, 2, 3, 4, 5, 6}, {7, 8, 9, 10, 11, 12}, {13, 14, 15, 16, 17, 18}, {19, 20, 21, 22, 23, 24}, {25, 26, 27, 28, 29, 30} }; // Print the non-boundary elements cout << "Non-boundary elements of the matrix are:" << endl; nonBoundaryElements(rows, cols, matrix); return 0; }

输出

Non-boundary elements of the matrix are:
8  9  10 11
14 15 16 17
20 21 22 23

时间和空间复杂度

时间复杂度:O(行数 × 列数),因为我们正在遍历除边界元素之外的行和列。

空间复杂度:O(1),因为我们没有使用任何数据结构。

AYUSH MISHRA
AYUSH MISHRA

工程师

更新于:2024年11月20日

15 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告