题解 | #"之"字形打印矩阵#

"之"字形打印矩阵

http://www.nowcoder.com/practice/d2efe600e73d47a2ba1533dc926cbb46

思路:打印一条斜线时行列下标和为定值。使用标志位记录是向上打印还是向下打印,每次打印完取反即可。注意打印的起点和终点要在数组的范围内,向下打印终点最大 为n-1,向上打印终点最小为0,不能越界。

#include <iostream>
#include <vector>
using namespace std;
int main(){
    int m,n,len;
    cin>>n;
    cin>>m;
    bool flag=false;
    vector<vector<int>> nums(n,vector<int>(m));
    for(int i=0;i<n;++i)
        for(int j=0;j<m;++j)
            cin>>nums[i][j];
    for(int i=0;i<m+n-1;++i){
        if(flag){
            len=min(i,n-1);
            for(int j=max(0,i-m+1);j<=len;++j)
                cout<<nums[j][i-j]<<" ";
            flag=false;
        }
        else{
            len=max(0,i-m+1);
            for(int j=min(n-1,i);j>=len;--j)
                cout<<nums[j][i-j]<<" ";
            flag=true;
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 17:10
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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