JAVA算法:回形矩阵输出
题目要求
给定一个整形矩阵Matrix,请按照顺时针方向转圈的方式,输入(打印)元素值。
例如:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
输出结果为:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
算法设计
package com.bean.algorithmexec;
public class MatrixDemo {
/*
* 给定一个整形矩阵Matrix,请按照顺时针方向转圈的方式,输入(打印)元素值。
* 例如:
* 1 2 3 4
* 5 6 7 8
* 9 10 11 12
* 13 14 15 16
* 输出结果为:
* 1 2 3 4
* 12 13 14 5
* 11 16 15 6
* 10 9 8 7
*
* 要求:额外空间复杂度为O(1)
* */
/*
* 转圈打印矩阵元素(顺时针转圈)
* */
public static int[][] generateMatrix(int n) {
int[][] rs = new int[n][n];
int top = 0,bottom = n-1,left = 0,right = n-1;
int num = 1;
//边界条件是 left<=right 同时 top<=bottom