用 C++ 以逆時針螺旋形式列印給定的矩陣
在本問題中,我們給定了一個二維矩陣。我們的任務是用逆時針螺旋形式打印出矩陣的元素。
逆時針螺旋形式 − 這是一個螺旋遍歷過程,它從左上角開始,然後朝逆時針方向先向右下左上移動。

逆時針遍歷將是 1 5 9 13 14 15 16 12 8 4 3 2 6 10 11 7。
讓我們舉一個例子來理解這個問題
Input: 2 4 6 1 7 9 5 0 3 Output: 2 1 5 0 3 9 7
要解決這個問題,我們將使用四個迴圈,每個迴圈一個方向,並根據其方向進行初始化和遍歷。
示例
該程式展示了我們解決方案的實現
#include <bits/stdc++.h>
using namespace std;
#define R 3
#define C 3
void printCounterClockwiseSpiral(int m, int n, int matrix[R][C]){
int i, k = 0, l = 0;
int count = 0;
int total = m * n;
while (k < m && l < n){
if (count == total)
break;
for (i = k; i < m; ++i){
cout<<matrix[i][l]<<" ";
count++;
}
l++;
if (count == total)
break;
for (i = l; i < n; ++i){
cout<<matrix[m - 1][i]<<" ";
count++;
}
m--;
if (count == total)
break;
if (k < m){
for (i = m - 1; i >= k; --i){
cout<<matrix[i][n - 1]<<" ";
count++;
}
n--;
}
if (count == total)
break;
if (l < n){
for (i = n - 1; i >= l; --i){
cout<<matrix[k][i]<<" ";
count++;
}
k++;
}
}
}
int main() {
int mat[R][C] = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9}
};
cout<<"Conter Clockwise Spiral from of the matrix is :\n";
printCounterClockwiseSpiral(R, C, mat);
return 0;
}輸出
矩陣的逆時針螺旋形式為 −
1 4 7 8 9 6 3 2 5
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP