756. 蛇形矩阵

模拟,设置偏移量
先往右,再往下,在往左,再往上,依次循环。

int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
//
//  main.cpp
//  756. 蛇形矩阵
//
//  Created by 翁一帆 on 2019/5/23.
//  Copyright © 2019 mouweng. All rights reserved.
//

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 110;
int map[N][N];
bool res[N][N];

int main(){
    
    int n,m;
    scanf("%d %d",&n,&m);
    
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    
    int x=0,y=0,d=0;
    for(int i=1;i<=n*m;i++){
        int nx=x+dx[d];
        int ny=y+dy[d];
        if(nx<0 || nx>=n ||ny<0 || ny>=m || res[nx][ny]){
            d=(d+1)%4;
            nx=x+dx[d];ny=y+dy[d];
        }
        
        map[x][y]=i;
        res[x][y]=1;
        
        x=nx;y=ny;
        
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cout<<map[i][j]<<" ";
        }
        cout<<endl;
    }
    
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容