回顾:螺旋打印数组

2021-02-12 23:19

阅读:380

标签:names   i+1   main   space   amp   sign   次数   ==   控制   

题意:给出一个n*m数组,要求顺时针螺旋打印该数组。

输入
3 4
1 2 3 4
5 6 7 8
9 10 11 12

输出

1 2 3 4 8 12 11 10 9 5 6 7

两种方法:
1、递归,控制方向,不能再移动时则改变方向,如果改变方向后仍然不能移动表示打印结束。
2、四个while循环,一直循环打印符合条件的数且未访问过的数,直到打印次数等于n*m。

#include
#define rep(i , j , n) for(int i = j ; i  n || y > m || x > a[i][j];
        }
    }
    //dfs(1 , 1 , 0);//方法2模拟
    int i = 1 , j = 0 , num = 0;
    while(true){
        while(j+1  0  && !vis[i][j-1]) vis[i][--j] = 1 ,cout  0  && !vis[i-1][j]) vis[--i][j] = 1 ,cout 

回顾:螺旋打印数组

标签:names   i+1   main   space   amp   sign   次数   ==   控制   

原文地址:https://www.cnblogs.com/nonames/p/12729112.html


评论


亲,登录后才可以留言!