c 順時針列印矩陣

2021-08-13 11:21:01 字數 837 閱讀 1856

對於乙個矩陣,請設計乙個演算法從左上角(mat[0][0])開始,順時針列印矩陣元素。

給定int矩陣mat,以及它的維數nxm,請返回乙個陣列,陣列中的元素為矩陣元素的順時針輸出。

測試樣例:

[[1,2],[3,4]],2,2
返回:[1,2,4,3]
題意如下圖所示:

順時針,首先遍歷最外面一層,1,2,3,4,7,10,4,3,2,1,7,4

然後遍歷裡面一層:5,6,9,8

因此解題思路就是將資料從外層向里層層層遍歷,要注意判定條件

class printer 

}else

p++;

}i++;

y++;

}return res;}};

第乙個while是判斷進行多少層遍歷,相當於將矩陣進行摺疊。要注意,同時判斷行和列

第二個while則是在一層中進行遍歷,while中的條件是對層數進行限定。

第乙個if是對第一行進行遍歷

if(p==i)

for(int j=i;j

第二個if對最後一行進行遍歷,然後再往上遍歷,也就是反l型遍歷

else if(p==n-1-i)

}

中間的if(m-1-i!=i)表示如果這一層只有一列時,就不會再往上遍歷。

第三個else是對第一行和最後一行之間進行遍歷

else

順時針列印矩陣 C

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字,例如,如果輸入如下矩陣 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.順時針列印矩陣 include inclu...

順時針列印矩陣 c

題目描述 對於乙個矩陣,請設計乙個演算法從左上角 mat 0 0 開始,順時針列印矩陣元素。給定int矩陣mat,以及它的維數nxm,請返回乙個陣列,陣列中的元素為矩陣元素的順時針輸出。測試樣例 1,2 3,4 2,2 返回 1,2,4,3 include include using namespa...

順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 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看著就煩,就是...