這篇文章主要介紹了PHP實現順時針列印矩陣(螺旋矩陣)的方法,涉及PHP基於數組遍曆、運算類比列印實現螺旋矩陣功能的相關操作技巧,需要的朋友可以參考下
本文執行個體講述了PHP實現順時針列印矩陣的方法。分享給大家供大家參考,具體如下:
問題
輸入一個矩陣,按照從外向裡以順時針的順序依次列印出每一個數字,例如,如果輸入如下矩陣:
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.
解決方案
就是一圈一圈地列印,只要控制好迴圈就可以。
注意單行單列的情況。
實現代碼
<?phpfunction printMatrix($matrix){ $row = count($matrix); $col = count($matrix[0]); if($row == 0 || $col == 0) return $matrix; $result = array(); $left = 0;$right = $col-1; $top = 0;$bottom = $row-1; while($left<=$right && $top<= $bottom){ for($i =$left;$i<=$right;++$i){ array_push($result, $matrix[$top][$i]); } for($i =$top+1;$i<=$bottom;++$i) array_push($result, $matrix[$i][$right]); if($top!=$bottom){ for($i = $right-1;$i>=$left;--$i) array_push($result, $matrix[$bottom][$i]); } if($left!=$right){ for($i = $bottom-1;$i>$top;--$i) array_push($result, $matrix[$i][$left]); } $left++;$right--;$top++;$bottom--; } return $result;}
您可能感興趣的文章:
PHP實現判斷二叉樹是否對稱的方法講解
PHP利用一行代碼刪除目錄下所有檔案方法樣本講解
PHP擷取字元流中第一個不重複字元的方法講解