题解 | #螺旋矩阵#

螺旋矩阵

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,通过限制上下左右来进行遍历即可

全部评论

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务