第四章:多維陣列和矩陣 --------------- 4.1 基礎題:順時針列印二維陣列
順時針列印二維陣列:
輸入一個矩陣,按照從外向裡以順時針的順序依次列印出每一個數字,例如,如果輸入如下矩陣:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
則依次列印出數字1 2 3 4 5 10 15 20 19 18 17 16 11 6 7 8 9 14 13 12。
#include<iostream>
#include<vector>
using namespace std;
void printMat(vector<vector<int> > mat)
{
int left=0,right=mat.front().size()-1; //left:左邊列號;right:右邊列號
int top=0,bottom=mat.size()-1;//top:上邊行號; bottom:下邊行號
while(left<=right&&top<=bottom)
{
int l=left,t=top+1,r=right-1,b=bottom-1;
//上面一條邊,從左到右
while(l<=right)
{
cout<<mat[top][l++]<<" ";
}
//右邊一條邊,從上到下
while(t<=bottom)
{
cout<<mat[t++][right]<<" ";
}
//下邊一條邊,從右向左
while(r>=left)
{
cout<<mat[bottom][r--]<<" ";
}
//左邊一條邊,從下到上
while(b>=top+1)
{
cout<<mat[b--][left]<<" ";
}
left++;
top++;
right--;
bottom--;
}
}
int main()
{
vector<vector<int> > matrix;
//二維向量初始化
for(int i=0,data=1;i<4;i++) //4行
{
vector<int> temp;
for(int j=0;j<5;j++) //5列
{
temp.push_back(data);
cout<<data<<" ";
data++;
}
cout<<endl;
matrix.push_back(temp);
}
printMat(matrix);
return 0;
}
結果:
參考:https://blog.csdn.net/u014474985/article/details/79377838
相關文章
- 第四章:多維陣列和矩陣 ------------- 4.3 基礎題:Z形列印二位陣列陣列矩陣
- 第四章:多維陣列和矩陣 ------------- 4.7 子陣列最大累加和陣列矩陣
- 第四章:多維陣列和矩陣 ------------- 4.8 子矩陣的最大累加和陣列矩陣
- PHP中二維陣列與多維陣列PHP陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- JAVA基礎--二維陣列Java陣列
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- 第四章:多維陣列和矩陣 ----------- 4.2 基礎題:將0所在的行列清零陣列矩陣
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列和稀疏陣列互轉陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- 多維陣列陣列
- 二維陣列陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 第四章:多維陣列和矩陣 ------------- 4.4 找出邊界為1的最大子方陣陣列矩陣
- JZ-019-順時針列印矩陣矩陣
- 一維多維陣列陣列
- 求二維陣列中最大子陣列的和陣列
- 多維陣列排序陣列排序
- 二維陣列排序陣列排序
- Java二維陣列Java陣列
- vector 二維陣列陣列
- 矩陣和陣列矩陣陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- Java break、continue 詳解與陣列深入解析:單維陣列和多維陣列詳細教程Java陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- 6-Java基礎語法-陣列之一維陣列Java陣列
- 劍指offer面試題29:順時針列印矩陣面試題矩陣
- C的二維陣列(習題)陣列
- PHP 多維陣列排序PHP陣列排序
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 劍指offer-19:順時針列印矩陣矩陣
- php 二維陣列排序PHP陣列排序
- 二維陣列查詢陣列
- 二維樹狀陣列陣列
- 二維陣列行排序陣列排序