leetcode:螺旋矩陣:一點就通:超詳細解答:

思路

主要是利用++行++列每次最終的位置就是終點。

(0-2列)m=2;(0-2行)n=3(行有三個數)
row=0,col=-1;要從(0,0)開始所以爲了統一的++col要從-1點開始。
思路

下面給出代碼

vector<int> res;
        if(matrix.empty()) return res;
        int m=matrix.size()-1;
        int n=matrix[0].size();
        int row=0,col=-1,i=0;
        while(m>=0 && n>=0){
            switch(i++%4){
                case 0:for(int i=0;i<n;i++)res.push_back(matrix[row][++col]);
                        n--;break;
                case 1:for(int i=0;i<m;i++)res.push_back(matrix[++row][col]);
                        m--;break;
                case 2:for(int i=0;i<n;i++)res.push_back(matrix[row][--col]);
                        n--;break;
                case 3:for(int i=0;i<m;i++)res.push_back(matrix[--row][col]);
                        m--;break;
            }
        }
        return res;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章