首页 > 试题广场 >

顺时针打印数字矩阵

[编程题]顺时针打印数字矩阵
  • 热度指数:4488 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个数字矩阵,请设计一个算法从左上角开始顺时针打印矩阵元素

输入描述:
输入第一行是两个数字,分别代表行数M和列数N;接下来是M行,每行N个数字,表示这个矩阵的所有元素;当读到M=-1,N=-1时,输入终止。


输出描述:
请按逗号分割顺时针打印矩阵元素(注意最后一个元素末尾不要有逗号!例如输出“1,2,3”,而不是“1,2,
3,”),每个矩阵输出完成后记得换行
示例1

输入

3 3
1 2 3
4 5 6
7 8 9
-1 -1

输出

1,2,3,6,9,8,7,4,5

备注:
M,N为正整数且 M*N<=300000
头像 想去深圳的蚊不叮求实习
发表于 2021-08-04 11:34:07
注意避坑:代码里面:当读到M=-1,N=-1时,输入终止;如果使用sc.close就无法通过;但是换用break就可以ac!!!自己也不清楚为什么,这块折腾了好长时间,因此,在此特意提醒。 import java.util.Scanner; /** * @program: Leetcode * 展开全文
头像 迪杰斯特拉
发表于 2019-08-19 16:46:55
顺时针打印矩阵:https://www.nowcoder.com/questionTerminal/ce0c22a435114108bd9acc75f81b5802备注:《剑指offer》原题,但是在线笔试版本由于输入格式&时间限制,有许多细节需要调整。为了避免超时的tips:(1)不能用S 展开全文
头像 laglangyue
发表于 2020-06-07 22:19:12
本题有两个坑第一个坑,一个测试里面有多个测试用例,一直当m和n为-1标识一次测试结束第二个坑是卡时间,因为有多个测试,就要判断是不是还有输入,hasNest(),这是个阻塞方法,费时,用buffread,用ready()方法,非阻塞方法。然后就是使用StringBuild类,比arrayList(这 展开全文
头像 来泡池子了的鳄鱼很谦虚
发表于 2024-04-27 13:40:31
思路整体可以分为四个状态,如果按照当前状态行进,下一个块如果不合法,或者已经被走过,则转向。只需要对(2,1)块特判下即可(可以自己模拟一下试试)。 import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public cl 展开全文
头像 Coder789
发表于 2021-09-23 21:37:33
import java.io.*; import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); 展开全文