剑指offer-05-顺时针打印数组
来源:互联网 发布:php 获取图片拍摄地点 编辑:程序博客网 时间:2024/06/08 19:10
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
package swordRefersToOffer;
import java.util.Scanner;
public class PrintMatrix {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int [][] arr = new int[n][n];
//给数组赋值
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
arr[i][j]=sc.nextInt();
}
}
//将数组的值输出
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
System.out.print(arr[i][j]+"\t");
if(j == n-1){
System.out.println();
}
}
}
System.out.println("顺时针打印请输入数组的值");
printMatr(arr);
}
public static void printMatr(int[][] arr){
int tr = 0;
int tc = 0;
int dr = arr.length-1;
int dc = arr[0].length-1;
while (tr <= dr && tc <= dc){
printEdge(arr,tr++,tc++,dr--,dc--);
}
}
public static void printEdge(int[][] arr,int tr, int tc, int dr, int dc){
if(tr == dr){//只有一行
for(int i =tc;i<dc;i++){
System.out.print(arr[tr][i]+" ");
}
}else if(tc==dc){//只有一列
for(int i =tr;i<dr;i++){
System.out.print(arr[i][tr]+" ");
}
}else{
int c = tc;
int r = tr;
while(c != dc){
System.out.print(arr[tr][c]+" ");
c++;
}
while(r != dr){
System.out.print(arr[r][dc]+" ");
r++;
}
while(c != tc){
System.out.print(arr[dr][c]+" ");
c--;
}
while(r != tr){
System.out.print(arr[r][tc]+" ");
r--;
}
}
}
}
思想:用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。
阅读全文
0 0
- 剑指offer-05-顺时针打印数组
- 剑指offer:顺时针打印数组
- 剑指Offer-顺时针打印数组
- 剑指offer之顺时针打印二维数组
- 《剑指offer》:[20]顺时针打印数组
- 剑指offer----顺时针打印数组----java实现
- 剑指offer--20.顺时针打印数组
- 剑指offer 面试题20 顺时针打印二维数组
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 《剑指offer》顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- ESC/POS协议打印机工具类(java)
- js匹配正则
- 创建守护进程
- c++ 实现一个简单的k-v数据黑板
- 判别分析|R语言
- 剑指offer-05-顺时针打印数组
- js将多个方法添加到window对象上的多种方法
- Java集合(一)总体框架
- 从0到1搭建一个项目管理平台<禅道>
- azkaban的executor的分布式(集群)部署
- HTML5的 input:file上传类型控制
- 时间戳转成日期,解决总是日期总是1970年的问题
- 【剑指offer】题12:打印1到最大的n位数
- Wildfly 配置web项目 并开启https双向认证