首頁 >後端開發 >php教程 > 顺时针方向打印矩阵解决思路

顺时针方向打印矩阵解决思路

WBOY
WBOY原創
2016-06-13 12:30:16816瀏覽

顺时针方向打印矩阵
http://blog.csdn.net/wusuopubupt/article/details/12788249
在这里看到的。

<?php<br />
/**<br />
 * @author:wusuopubupt<br />
 * @date:2013-10-16<br />
 * @from:http://ac.jobdu.com/problem.php?pid=1391<br />
 * <br />
 * Print matrix in clockwise<br />
 * */<br />
$matrix = array<br />
(<br />
	array(1,2,3,4),<br />
	array(5,6,7,8),<br />
	array(9,10,11,12),<br />
	array(13,14,15,16),<br />
	array(17,18,19,20)<br />
);<br />
<br />
print_matrix($matrix);<br />
<br />
function print_matrix($arr) {<br />
	$top = 0;<br />
	$left = 0;<br />
	$right = count($arr[0])-1;<br />
	$bottom  = count($arr)-1;<br />
	<br />
	while ($left != $right && $top != $bottom) {<br />
		//top<br />
		for($j = $left; $j <= $right; $j++) {<br />
			echo $arr[$top][$j]." ";<br />
		}<br />
		$top++;<br />
		<br />
		//right<br />
		for($i = $top; $i <= $bottom; $i++) {<br />
			echo $arr[$i][$right]." ";<br />
		}<br />
		$right--;<br />
		<br />
		//bottom<br />
		for($j = $right; $j >= $left; $j--) {<br />
			echo $arr[$bottom][$j]." ";<br />
		}<br />
		$bottom--;<br />
		<br />
		//left<br />
		for($i = $bottom; $i >= $top; $i--) {<br />
			echo $arr[$i][$left]." ";<br />
		}<br />
		$left++;<br />
	}<br />
}

为啥输出结果是这样的呢?1 2 3 4 8 12 16 20 19 18 17 13 9 5 6 7  11 15 14 10

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn