美文网首页
756. 蛇形矩阵

756. 蛇形矩阵

作者: Charon_ted | 来源:发表于2019-05-16 17:50 被阅读0次

输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。

具体矩阵形式可参考样例。

输入格式
输入共一行,包含两个整数n和m。

输出格式
输出满足要求的矩阵。

矩阵占n行,每行包含m个空格隔开的整数。

数据范围
1≤n,m≤100
输入样例:

3 3

输出样例:

1 2 3
8 9 4
7 6 5

先讲一下大概的思路 就是按照蛇形的顺序去往返回的结果里填写数据
而且在遇到边界情况时,要更改填写的方向 我们可以画个图大概看看一下


image.png

在所以我们要做的就是 定义好四个方向,然后在遇到边界情况的时候,去更改这个方向

在定义方向的时候我们可以开两个一维数组分别来表示横纵坐标的修改 例如题中要求的是顺时针填写 那么我们的两个方向数组就是

dx[]{ 0 , 1 , 0 , -1 }, dy[]{ 1 , 0 , -1 , 0}

同时定义一个代表当前方向的 dir
当我们修改方向时,直接将 dir=(dir+1)%4 即可

然后就是如何判定边界条件
这里有两个条件 一个是 如果下一个格子的 横纵坐标超过n m或者小于零 说名超出边界了,需要更改方向
另一个是 如果下一个格子的值已经被填写过,这时候也应该修改方向

这里我们可以开一个bool数组用判断这个格子是不是已经被填写过了

下面上具体的实现代码

#include<iostream>
using namespace std;


int main()
{
    int res[100][100];
    bool st[100][100];
    int x=0,y=0,d=0 ,dx[]{0,1,0,-1},dy[]{1,0,-1,0};
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n*m;i++)
    {
        res[x][y]=i+1;
        st[x][y]=true;
        int nx=x+dx[d],ny=y+dy[d];
        if(st[nx][ny] || nx<0||nx>=n || ny<0||ny>=m)
        {
            d++;
            d%=4;
            nx=x+dx[d],ny=y+dy[d];
        }
        x=nx;
        y=ny;
    }
    
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            cout<<res[i][j]<<' ';
        cout<<endl;
    }
}

相关文章

  • 756. 蛇形矩阵

    输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。 具体矩阵形式可参考...

  • 蛇形矩阵

    java实现“之“字型矩阵 思路: 分为左上角、右下角、中间三部分,其中左上角和右下角和为N*N + 1,中间一部...

  • 蛇形矩阵

    是道老题了。凭着印象写,代码技巧是:先判断,后移动。

  • 1160 蛇形矩阵

    题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填...

  • 蛇形矩阵 输出

    有的时候零零碎碎的东西太多,总归是需要找个地方来记录一下。大神们有个Git、CSDN,我就先在这里水一下吧,就只当...

  • 算法:蛇形矩阵

    偶然看到蛇形矩阵的算法题,觉得比较有趣,想了想,解出来了,并且对算法有了一个新的感知,先看看题目吧,后面谈谈对算法...

  • Tip | 蛇形矩阵

    输入一个数字i,需要返回的内容如下: 输入一个数字i,输出结果的矩阵是i行i列的。矩阵从右上角开始,从1开始往下,...

  • codevs 1160 蛇形矩阵

    康复1。 2016/01/08 7:58:25稚嫩的自己的代码: 感觉不是自己写的。怎么这么复杂啊。不过思路值得借...

  • 【Java】小议蛇形矩阵

    描述: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入正整数n(n不大于100)输出,输出一个n行...

  • 华为机试 HJ35 蛇形矩阵

    HJ35 蛇形矩阵[https://www.nowcoder.com/practice/649b210ef4444...

网友评论

      本文标题:756. 蛇形矩阵

      本文链接:https://www.haomeiwen.com/subject/jgqwaqtx.html