ホームページ  >  記事  >  バックエンド開発  >  右回り印刷マトリクスとスパイラルマトリクスを実現するPHP手法

右回り印刷マトリクスとスパイラルマトリクスを実現するPHP手法

jacklove
jackloveオリジナル
2018-05-22 17:05:311664ブラウズ

この記事では、PHP で行列と螺旋行列の時計回りの印刷を実装する方法を説明します。

この記事の例では、PHP で行列を時計回りに出力する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

質問

行列を入力し、各数値を外側から内側に向​​かって時計回りに出力します。たとえば、次の行列を入力したとします:

1234

5678

9101112

13141516

は、1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10 の数字を順番に出力します。

解決策

は、印刷がぐるぐる回って、サイクルを制御するだけです。

単一行、単一列の状況に注意してください。

実装コード

function 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 の中国語 Web サイトを参照してください。

関連する推奨事項:

PHP 学習: 事前定義変数の詳細

PHP 開発を使用して WeChat 返金機能を実装する方法を説明します

PHP はバイナリ ツリーをジグザグ順序で出力するメソッドを実装します

以上が右回り印刷マトリクスとスパイラルマトリクスを実現するPHP手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。