acwing 756蛇形矩阵,好像很多面试题会考,学习一下

#include <iostream>

#include <algorithm>

//常量

const int N =100;

//存储,用于打印

int res[N][N];

//标记

bool st[N][N];

using namespace std;

int main(){

int n,m;

cin>>n>>m;

//偏移量

int dx[]={0,1,0,-1},dy[]={1,0,-1,0};

//起点

int x=0,y=0,d=0;

for(int i=1;i<=n*m;i++){

//下一次坐标

int nx=x+dx[d],ny=y+dy[d];

//边界/占用

if(nx<0||nx>=n||ny<0||ny>=m||st[nx][ny])

{

//换方向

d=(d+1)%4;

//下一次坐标

nx=x+dx[d],ny=y+dy[d];

}

res[x][y]=i;

st[x][y]=true;

//更新

x=nx,y=ny;

}

//dayin

for(int i=0;i<n;i++){

for(int j=0;j<m;j++){

cout<<res[i][j]<<" ";

}

cout<<endl;

}

return 0;

}

全部评论

相关推荐

05-19 13:08
同济大学 C++
27届大模型应用开发:别太担心,就算你准备好也不一定能过,就算你现在面也不一定就过不了,面试嘛,要么成功,要么成长
我的求职进度条
点赞 评论 收藏
分享
05-19 16:41
复旦大学 Python
ynq2126:我一直觉得现在考算法题没啥意义 真要选拔人才不如把公司实际项目中遇到的问题当成一系列场景题抛给求职者答 这才是能检测能力的东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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