顺时针打印矩阵

class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
int m = matrix.size(); //行数
int n = matrix[0].size(); //列数</int></int>

    vector<int> res; //返回结果,若m*n == 0,则返回的也是空数组
    if(m == 0 || n == 0)
        return res;

    int c1 = 0; //要打印的列的起始下标
    int c2 = n-1; //要打印的列的终点下标
    int r1 = 0; //要打印的行的起始下标
    int r2 = m-1;//要打印的行的终点下标

    while(c1 <= c2 && r1<=r2) //存在可打印的元素
    {
        //打印顶行
        for(int j = c1; j<=c2; j++)
            res.push_back(matrix[r1][j]);
        r1++;
       //打印右列
        if(r1 <= r2)
        {
            for(int i = r1; i<=r2; i++)
                res.push_back(matrix[i][c2]);
            c2--;
        }else
            break;
        //打印底行
        if(c1<=c2)
        {
            for(int j = c2; j>=c1; j--)
                res.push_back(matrix[r2][j]);
            r2--;
        }else
            break;
        //打印左列
        if(r1<=r2)
        {
            for(int i = r2; i>=r1; i--)
                res.push_back(matrix[i][c1]);
            c1++;
        }else
            break;
    } 
    return res;
}

};

全部评论

相关推荐

冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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