国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

從外向里以順時針的順序依次打印出矩陣的每一個數字

2019-11-08 02:25:08
字體:
來源:轉載
供稿:網友

輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

設計測試用例:

 
int arr[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int arr[][]={{1,2,3},{4,5,6},{7,8,9}};   int arr[][]={};
int arr=null;int arr[][]={{1}};int arr[][]={{1,2,3,4,5},{6,7,8,9,10}};int arr[][]={{1,2,3,4,5}};int arr[][]={{1},{2},{3},{4},{5}};思路概述:首先控制能打印多少圈,然后分別打印每一圈。如下代碼可以直接在java1.7環境下運行通過。
package com.mytest.mymain;import java.util.ArrayList;public class TTest {public static void main(String[] args) {ArrayList<Integer> al=new ArrayList<Integer>();int arr[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};//int arr[][]={{1},{2},{3},{4},{5}};////int arr[][]={{1,2,3},{4,5,6},{7,8,9}};//int arr[][]={}; //int arr[][]={{1}};///int arr[][]={{1,2,3,4,5},{6,7,8,9,10}};///int arr[][]={{1,2,3,4,5}};if(arr==null || arr.length==0)return;al=PRintMatrix(arr);System.out.println(al);}    public static ArrayList<Integer> printMatrix(int [][] matrix) {        ArrayList<Integer> al=new ArrayList<Integer>();       if(matrix==null)return null;//打印圈行大于2s,列大于2s;int start=0;while(matrix[0].length>2*start && matrix.length>2*start){   //控制打印多少圈的                                                                                                        //條件,這個很重要。al=printcircle(al,matrix,start);start++;}               return al;    }         private static ArrayList<Integer> printcircle(ArrayList<Integer> all,int[][] aa, int start) {for(int i=start;i<aa[0].length-start;i++){//打印一邊System.out.println("111:"+aa[start][i]);all.add(aa[start][i]);}for(int i=start+1;i<aa.length-start;i++){//打印一邊,注意不要重復打印拐角System.out.println("222:"+aa[i][aa[0].length-start-1]);all.add(aa[i][aa[0].length-start-1]);}if(aa.length-start-1>start){//防止從右向左打印和從左向右邊打印重復,否則測試         //用例int arr[][]={{1,2,3,4,5}};輸出為:1,2,3,4,5,4,3,2      for(int i=aa[0].length-start-2;i>=start;i--){//打印一邊System.out.println("333:"+aa[aa.length-start-1][i]);all.add(aa[aa.length-start-1][i]);}}if(aa[0].length-start-1>start){                                                 //防止從右向左打印和從左向右邊打印重復,否則測試        //例int arr[][]={{1},{2},{3},{4},{5}};輸出為:1,2,3,4,5,4,3,2  for(int i=aa.length-start-2;i>start;i--){//打印一邊System.out.println("444:"+aa[i][start]);all.add(aa[i][start]);}}                  return all;}}運行效果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乡| 蒲城县| 江永县| 舞阳县| 塔城市| 嘉义县| 云浮市| 游戏| 巨鹿县| 德安县| 防城港市| 仪陇县| 饶平县| 嘉祥县| 土默特右旗| 佳木斯市| 霍州市| 开封县| 博罗县| 新乡市| 定边县| 宾阳县| 三都| 阳山县| 平利县| 陵川县| 青阳县| 卫辉市| 缙云县| 延长县| 银川市| 喜德县| 文登市| 涟水县| 阿城市| 西和县| 成安县| 哈尔滨市| 新巴尔虎左旗| 华亭县| 正镶白旗|