题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数

class Solution {
public:   
    vector<int> printMatrix(vector<vector<int> > matrix) {
    vector<int> save;
    int length;
    int width;
    int count;
    int start=0;    
    length=matrix.size();
    width=matrix[0].size();
    count=length*width;
    while(count){
        for(int i=start;i<width;i++){
            save.push_back(matrix[start][i]);
            count--;
            if(count==0)
             return save;   
        }
        for(int i=start+1;i<length;i++){
           save.push_back(matrix[i][width-1]);
           count--;
              if(count==0)
             return save;   
           }
        for(int i=width-2;i>=start;i--){
             save.push_back(matrix[length-1][i]);
             count--;
              if(count==0)
             return save;   
          }
        for(int i=length-2;i>start;i--){
             save.push_back(matrix[i][start]);
          count--;
              if(count==0)
             return save;   
          }
        length --;
		width --;
		start ++;   
    }  
       return save;     
    }   
};

猜你喜欢

转载自blog.csdn.net/m0_38099328/article/details/85851738