当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP实现顺时针打印矩阵及螺旋矩阵的方法

PHP实现顺时针打印矩阵及螺旋矩阵的方法

2018年04月17日  | 移动技术网IT编程  | 我要评论

企鹅名人赛,斗罗大陆之折翼天使,大卫·贝克汉姆

本文实例讲述了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;

}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网