求助大神 Z字形扫描 用JAVA作 急急急!!!!

m694360135 2014-12-14 03:10:22
  在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:

  对于下面的4×4的矩阵,
  1 5 3 9
  3 7 5 6
  9 4 6 4
  7 3 1 3
  对其进行Z字形扫描后得到长度为16的序列:
  1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
  请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描的结果。
输入格式
  输入的第一行包含一个整数n,表示矩阵的大小。
  输入的第二行到第n+1行每行包含n个正整数,由空格分隔,表示给定的矩阵。
输出格式
  输出一行,包含n×n个整数,由空格分隔,表示输入的矩阵经过Z字形扫描后的结果。
样例输入
4
1 5 3 9
3 7 5 6
9 4 6 4
7 3 1 3
样例输出
1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3
评测用例规模与约定
  1≤n≤500,矩阵元素为不超过1000的正整数。
...全文
1037 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuixuange 2016-03-28
  • 打赏
  • 举报
回复
做了 60分
yatyou 2014-12-15
  • 打赏
  • 举报
回复
http://my.oschina.net/chenzuhuang/blog/356073
  • 打赏
  • 举报
回复
http://my.oschina.net/FZUXMUBMW/blog/356188
DingAndroid 2014-12-14
  • 打赏
  • 举报
回复

import java.util.*;
public class Test2 {
	static Scanner scan=new Scanner(System.in);
	static int n;
	static int[][] array;
	static boolean flag1,flag2;
	static int i,j;
	public static void move(){
		if(flag1){
			System.out.print(array[i][++j]+" ");
		}
		else {
			System.out.print(array[++i][j]+" ");
		}
		flag1=!flag1;
	}
	public static void move_seria(){
		while(flag2){
			System.out.print(array[--i][++j]+" ");
			if(i==0 || j==n-1){
				flag2=!flag2;
				return;
			}
		}
		while(!flag2){
			System.out.print(array[++i][--j]+" ");
			if(i==n-1 || j==0){
				flag2=!flag2;
				return;
			}
		}	
	}
	public static void main(String[] args) {
		n=scan.nextInt();
		array=new int[n][n];
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				array[i][j]=scan.nextInt();
		if(n==1){
			System.out.print(array[n-1][n-1]+" ");
		}
		else{
			i=0;
			j=0;
			flag1=true;
			flag2=false;
			System.out.print(array[0][0]+" ");
			while(true){
				move();
				if(i==n-1 && j==n-1)
					break;
				move_seria();
				if(i==0 && j==n-1)
					flag1=false;
				else if(i==n-1 && j==0)
					flag1=true;
			}
		}
	}

}
程序666猿 2014-12-14
  • 打赏
  • 举报
回复
你叼,你是大神,刚刚CSP上的题吧, n得分奇偶两种情况做,临走的时候才想出思路,坑了。。。
m694360135 2014-12-14
  • 打赏
  • 举报
回复
大神在哪里啊

58,448

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧