任意行列矩陣順時針螺旋輸出

2022-09-14 14:00:14 字數 1059 閱讀 2097

比如5行6列的矩陣

要求輸出結果為:1,2,3,4,5,6,12,18,24,30,29,28,27,26,25,19,13,7,8,9,10,11,17,23,22,21,20,14,15,16

主要思路:寫乙個方法剝完外面一圈後,矩陣剩下的資料成為乙個新的矩陣,再次遞迴呼叫此方法,直到剝完

實現**如下:

import j**a.util.arraylist;

import j**a.util.list;

public class matrixscrewoutput

} else

} /**

* 初始化矩陣

* @param row 行數

* @param column 列數

* @return

*/private static int init(int row,int column)

//矩陣的列數

int column = matrix[0].length;

//沒有列,表示已剝完

if (column<=0)

//表示只剩最後一行或者一列

if (row ==1|| column==1)

}else

}//退出遞迴

return;

} //還剩多行多列的情況

else

//處理最左邊一列,從下到上,注意從倒數第二行開始且不要第一行資料

for(int i = row-2;i>0;i--)

//到此剝完最外面一圈

if (row==2 || column ==2)

//把裡面剩下的矩陣再放入到新的矩陣中,再執行此方法剝最外面一圈

int tmp = new int[row-2][column-2];

for (int i = 1;i< row-1;i++)

}rotationoutput(tmp,result);

} }}

陣列矩陣的順時針輸出

其實這個題目,我要講的並不是這個題目的編碼過程,而是對於這個問題解決過程 我們不能遇到這個問題之後立即編碼是錯誤的,然而立即拿出筆在紙上寫寫畫畫時,也是需要進行技巧的,針對這個問題,我們首先看看順時針時,走一圈作為乙個迴圈,然而該 迴圈的起點是很有意思的,這個點的所在的點行座標和列座標是相同的 也即...

螺旋矩陣題總結 (順時針列印矩陣)python

第一道題的解題思路 按照從左到右,從上到下,從右到左,從下到上的順序依次列印矩陣中的數字,要注意的是判斷拐點的邊界條件,和時刻保持左不能大於右,上不能大於下。如下 class solution def spiralorder self,matrix list list int list int if...

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...