关闭

基础练习 BASIC-25 回形取数

标签: java数据结构算法蓝桥杯
55人阅读 评论(0) 收藏 举报
分类:
问题描述
  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 8 9 6 3 2 5
样例输入
3 2
1 2
3 4
5 6
样例输出
     1 3 5 6 4 2

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int m = input.nextInt();
		int n = input.nextInt();
		
		int [] [] arr = new int[m][n];
		int [] [] label = new int[m][n];
		
		//输入数据和做标记
		for (int i=0; i<arr.length; i++){
			for (int j=0; j<arr[i].length; j++){
				arr[i][j] = input.nextInt();
				label[i][j] = 1;
			}
		}
		
		int total = 1,i=1,j=0;
		System.out.print(arr[0][0]+" ");
		label[0][0]=0;
		while(total < m*n){
			while(i<m && label[i][j]==1){
				System.out.print(arr[i][j]+" ");
				label[i][j]=0;
				i++;
				total++;
			}
			i--;
			j++;
			
			while(j<n && label[i][j]==1){
				System.out.print(arr[i][j]+" ");
				label[i][j]=0;
				j++;
				total++;
			}
			i--;
			j--;
			
			while(i>=0 && label[i][j]==1){
				System.out.print(arr[i][j]+" ");
				label[i][j]=0;
				i--;
				total++;
			}
			i++;
			j--;
			
			while(j>=0 && label[i][j]==1){
				System.out.print(arr[i][j]+" ");
				label[i][j]=0;
				j--;
				total++;
			}
			i++;
			j++;
		}
	}
}



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

蓝桥杯-基础练习之十六进制转八进制——BASIC-12

蓝桥杯 基础练习 十六进制转八进制 大数
  • lx417147512
  • lx417147512
  • 2014-02-28 09:18
  • 2826

蓝桥杯:基础练习 特殊回文数

基础练习 特殊回文数   时间限制:1.0s   内存限制:512.0MB        问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。 ...
  • catchingSun
  • catchingSun
  • 2016-01-26 11:43
  • 1874

蓝桥杯 基础训练 完美的代价(转)

原文地址:http://blog.csdn.net/houheshuai/article/details/41253193   基础练习 完美的代价   时间限制:1.0s...
  • Sterben_Da
  • Sterben_Da
  • 2016-01-01 17:22
  • 1972

[BASIC-25] 回形取数

基础练习 回形取数   时间限制:1.0s   内存限制:512.0MB 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位...
  • u011506951
  • u011506951
  • 2014-05-22 20:58
  • 994

[BASIC-25]-回形取数(java)

当遇到一个比较复杂的问题时可以用图像来帮我们理解 这道题的难点在于代码中会包含很多个循环,而且还有多个边界条件需要判断,如果在把问题考虑的很清楚前就开始写代码,不可避免的越写越乱。 因此,解决这个问题...
  • sinat_32588261
  • sinat_32588261
  • 2017-03-28 20:55
  • 361

蓝桥杯-基础练习之特殊回文数——BASIC-9

基础练习 特殊回文数   时间限制:1.0s   内存限制:512.0MB     问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求...
  • lx417147512
  • lx417147512
  • 2014-02-28 09:09
  • 1516

蓝桥杯 BASIC-20 基础练习 数的读法 问题

问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。 比如说,在对学生讲解第1234567...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:34
  • 525

蓝桥杯BASIC-9——基础练习 特殊回文数

基础练习 特殊回文数   时间限制:1.0s   内存限制:512.0MB        问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。 ...
  • qq_37518622
  • qq_37518622
  • 2017-03-12 12:55
  • 261

蓝桥杯--基础练习--BASIC-3 字母图形

问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的...
  • qq_34037358
  • qq_34037358
  • 2016-05-26 20:28
  • 157

蓝桥杯基础练习BASIC-15 字符串对比

问题描述   给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:   1:两个字符串长度不等。比如 Beijing 和 Hebei   2...
  • M_Eve
  • M_Eve
  • 2017-04-06 14:23
  • 231
    个人资料
    • 访问:15024次
    • 积分:1594
    • 等级:
    • 排名:千里之外
    • 原创:152篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条