转圈圈&二维矩阵

二维矩阵顺序输出

/*问题:将下面二维矩阵顺时针输出
 * 	{1,2,3,4,5},
	{6,7,8,9,10},
	{11,12,13,14,15},
	{16,17,18,19,20};  
 */
public class 二维数组循环输出 {
public static void main(String[] args) {
	  int [][]matrix= {
	{1,2,3,4,5},
	{6,7,8,9,10},
	{11,12,13,14,15},
	{16,17,18,19,20}};  
	  print(matrix);
} 
	static void print(int[][] matrix) {
		int leftrow = 0;// 不变
		int leftres = 0;// 不变
		int rightrow = matrix.length - 1;// 列边界
		int rightres = matrix[0].length - 1;// 行边界
		while (leftres <= rightres && leftrow <= rightrow) {
			int r = leftrow;// 拷贝一下指针,为了初始化和恢复5
			int c = leftres;// 指针变量4
			while (c <= rightres) {
				System.out.print(matrix[leftrow][c++] + " "); //打印第一行
			} // 下面进行恢复,直到到那里了
			c = rightres;//赋值得5
			leftrow++;// 下标第二行
			while (r <= rightrow) {
				System.out.print(matrix[r++][c] + " ");
			} // 恢复
			r = rightrow;
			c--;
			while (c >= leftres) {
				System.out.print(matrix[r][c--] + " ");
			}
			c = leftres;
			r--;
			while (r >= leftrow) {
				System.out.print(matrix[r--][c] + " ");
			}
			// 然后处理边界问题.两边所缩胸小
			leftrow++;
			leftres++;
			rightrow--;
			rightres--;
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金石不渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值