顺时针打印矩阵题目描述输入一个矩阵,从外到内按顺时针顺序打印出每一个数。例如,如果您输入以下4X4矩阵:123456789101112131415和16将打印出数字1、2、3、4、8、12、16、15,14,13,9,5,6,7,11,10依次。题目链接:顺时针打印矩阵代码importjava。util.ArrayList;/***Title:PrintMatrixClockwise*TitleDescription*输入一个矩阵,从外到内按顺时针顺序打印出每一个数。例如,如果您输入以下4X4*矩阵:12345678910111213141516*然后打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11依次,10。*问题链接:*https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a?tpId=13&&tqId=11172&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking*/publicclassJz19{publicArrayListprintMatrix2(int[][]矩阵){ArrayListlist=newArrayList<>();if(matrix==null||matrix.length==0||matrix[0].length==0){返回列表;}向上=0;intdown=matrix.length-1;int左=0;intright=matrix[0].length-1;while(true){//大多数上面一行for(intcol=left;col<=right;col++){list.add(matrix[up][col]);}//向上接近++向下;//判断是否越界if(up>down){break;}//最右边的行for(introw=up;row<=down;row++){list.add(matrix[row][right]);}//近似于左right--;//判断是否越界if(left>right){break;}//底线for(intcol=right;col>=left;col--){list.add(matrix[down][col]);}//向上近似向下--;//判断是否越界if(up>down){break;}//最左边的行for(introw=down;row>=up;row--){list.add(matrix[row][left]);}//向左接近++向右;//判断是否越界如果(左>右){中断;}}返回列表;}publicArrayListprintMatrix(int[][]matrix){ArrayListresult=newArrayList();intr1=0,r2=matrix.length-1,c1=0,c2=matrix[0].length-1;while(r1<=r2&&c1<=c2){for(inti=c1;i<=c2;i++){result.add(matrix[r1][i]);}for(inti=r1+1;i<=r2;i++){result.add(matrix[i][c2]);}if(r1!=r2){for(inti=c2-1;i>=c1;i--){result.add(matrix[r2][i]);}}if(c1!=c2){for(inti=r2-1;i>r1;i--){result.add(矩阵[i][c1]);}}r1++;r2--;c1++;c2--;}返回结果;}}【每日留言】所有的改变都是深思熟虑后的奇迹,奇迹每时每刻都在发生。