java中怎么實(shí)現(xiàn)順時(shí)針打印矩陣,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)專注于石城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),電子商務(wù)商城網(wǎng)站建設(shè)。石城網(wǎng)站建設(shè)公司,為石城等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
import java.util.ArrayList; /** 輸入一個(gè)矩陣,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字,例如, 如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數(shù)字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. * */ public class Test19 { public static void main(String[] args) { int[][] array1 = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; int[][] array2 = { { 1 } }; int[][] array3 = { { 1 }, { 2 }, { 3 }, { 4 }, { 5 } }; int[][] array4 = { { 1, 2, 3, 4, 5 } }; int[][] array5 = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 }, { 11, 12, 13, 14, 15 } }; printMatrix(array1); System.out.println(); printMatrix(array2); System.out.println(); printMatrix(array3); System.out.println(); printMatrix(array4); System.out.println(); printMatrix(array5); } public static ArrayList<Integer> printMatrix(int[][] matrix) { ArrayList<Integer> arrayList = new ArrayList<>(); int x = 0; int row = matrix.length; int line = matrix[matrix.length - 1].length; while (x < row && x < line) { arrayList.addAll(printLine(matrix, x, x, row, line)); x++; row--; line--; } System.out.print(arrayList.toString()); return arrayList; } private static ArrayList<Integer> printLine(int[][] matrix, int r1, int l1, int r2, int l2) { ArrayList<Integer> arrayList = new ArrayList<>(); for (int i = l1; i <= l2 - 1; i++) {// 保證奇數(shù)層中間可輸出 arrayList.add(matrix[r1][i]); } for (int k = r1 + 1; k <= r2 - 1; k++) { arrayList.add(matrix[k][l2 - 1]); } if ((r2 - r1) != 1) {//防止重復(fù)打印 for (int j = l2 - 2; j >= l1; j--) { arrayList.add(matrix[r2 - 1][j]); } } if ((l2 - l1) != 1) {//防止重復(fù)打印 for (int u = r2 - 2; u > r1; u--) { arrayList.add(matrix[u][l1]); } } return arrayList; } } //其他方法 /** import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int [][] array) { ArrayList<Integer> result = new ArrayList<Integer> (); if(array.length==0) return result; int n = array.length,m = array[0].length; if(m==0) return result; int layers = (Math.min(n,m)-1)/2+1;//這個(gè)是層數(shù) for(int i=0;i<layers;i++){ for(int k = i;k<m-i;k++) result.add(array[i][k]);//左至右 for(int j=i+1;j<n-i;j++) result.add(array[j][m-i-1]);//右上至右下 for(int k=m-i-2;(k>=i)&&(n-i-1!=i);k--) result.add(array[n-i-1][k]);//右至左 for(int j=n-i-2;(j>i)&&(m-i-1!=i);j--) result.add(array[j][i]);//左下至左上 } return result; } } */
關(guān)于java中怎么實(shí)現(xiàn)順時(shí)針打印矩陣問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
本文題目:java中怎么實(shí)現(xiàn)順時(shí)針打印矩陣
文章URL:http://jinyejixie.com/article44/jjhjhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、電子商務(wù)、標(biāo)簽優(yōu)化、企業(yè)建站、動(dòng)態(tài)網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)