之字形打印矩阵

初始化两个坐标点,一个每次向右,到达尽头往下;一个每次向下,到达尽头往右;打印两点之间的对角线

public static void zigzag(int[][] arr){
		if(arr==null){
			return;
		}
		
		int ar = 0,ac = 0,br = 0,bc = 0;
		int rl = arr.length-1;
		int cl = arr[0].length-1;
		boolean flag = false;
		
		while(ar!=rl+1){
			zPrint(arr,ar,ac,br,bc,flag);
			
			ar = ac == cl ? ++ar:ar;
			ac = ac == cl ? ac:++ac;
			bc = br == rl ? ++bc:bc;
			br = br == rl ? br:++br;
			
			flag = !flag;
		}
		
		
	}
	
	public static void zPrint(int[][] arr,int ar,int ac,int br,int bc,boolean flag){
		if(flag){
			while(ar != br+1){
				System.out.print(arr[ar++][ac--]+",");
			}
		}else{
			while(br!=ar-1){
				System.out.print(arr[br--][bc++]+",");
			}
		}
		
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值