Ex1: 顺时针打印矩阵:
对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。给定int矩阵mat,以及它的维数n*m,请返回一个
数组,数组中的元素为矩阵元素的顺时针输出。
测试样例:
输入:[[1,2],[3,4]],2,2
返回:[1,2,4,3]
本来写了挺多内容的,垃圾CSDN保存的时候出问题,全没了
没兴致了,直接贴代码吧
class Solution {
public:
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
vector<int> printMatrix(vector<vector<int> > matrix) {
int n=matrix.size(); int m=matrix[0].size();
bool visited[n][m];
memset(visited,false,sizeof(visited)); //这句不可少,因为不会默认初始化
vector<int> ans;
int dir=0,curX=0,curY=0;
int nextX,nextY;
for(int i=1;i<=n*m;i++){
ans.push_back(matrix[