题解 | #螺旋矩阵#

螺旋矩阵

http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

class Solution {
public:
vector<int> spiralOrder(vector<vector<int> > &matrix) {
    vector<int>ret;
    if (matrix.empty())return ret;
    int m = matrix.size();
    int n = matrix[0].size();
    if (m == 1 && n == 1)return { 1 };
    int top = 0, down = m - 1, l = 0, r = n - 1;
    int i = 0, k = 0, j = 0;
    if (m == 0)return ret;
    while (i < m*n) {
        k = l;
        while (i < m*n&&k <=r) {
            ret.push_back(matrix[top][k]);
            k++;
            i++;
        }
        top++;
        j = top;
        while (i < m*n&&j <= down) {
            ret.push_back(matrix[j][r]);
            j++;
            i++;
        }
        r--;
        k = r;
        while (i < m*n&&k >=l) {
            ret.push_back(matrix[down][k]);
            k--;
            i++;
        }
        down--;
        j = down;
        while (i < m*n&&j >= top) {
            ret.push_back(matrix[j][l]);
            j--;
            i++;
        }
        l++;
    }
    return ret;
}
};

其实可以通过设置游标k,j,通过限制上下左右来进行遍历即可

全部评论

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务