标签:arr int void 打印 矩阵 旋转 static new public
将一个数组旋转打印出来,
public class JZ {
public static void creatArr() {
int[][] arr = new int[3][];
arr[0] = new int[]{1, 2, 3};
arr[1] = new int[]{4, 5, 6};
arr[2] = new int[]{7, 8, 9};
doWhile(arr);
}
/**
* @param arr
*
*
* 如果左上角的点小于等于右下角的点,就进行打印,
* 每次纸只打印数组最外围的一圈,数组的X轴与Y轴所指方向与平常数学中有所不同
*/
public static void doWhile(int[][] arr) {
int UX = 0;
int UY = 0;
int DX = arr.length - 1;
int DY = arr[0].length - 1;
while (UX <= DX && UY <= DY) {
doP(arr, UX++, UY++, DX--, DY--);
}
}
public static void doP(int[][] arr, int UX, int UY, int DX, int DY) {
if (UX == DX) {
while (UY <= DY) {
System.out.print(arr[UY++][UX] + " ");
}
} else if (UY == DY) {
while (UX <= DX) {
System.out.print(arr[UX++][UY] + " ");
}
} else {
int aX = UX;
int aY = UY;
while (aY < DY) {
System.out.print(arr[UX][aY++] + " ");
}
while (aX < DX) {
System.out.print(arr[aX++][DY] + " ");
}
while (aY > UY) {
System.out.print(arr[DX][aY--] + " ");
}
while (aX > UX) {
System.out.print(arr[aX--][UY] + " ");
}
}
}
public static void main(String[] args) {
creatArr();
}
}
标签:arr,int,void,打印,矩阵,旋转,static,new,public 来源: https://blog.csdn.net/qq_41597666/article/details/121436870
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。