这篇文章主要介绍了PHP实现顺时针打印矩阵(螺旋矩阵)的方法,涉及PHP基于数组遍历、运算模拟打印实现螺旋矩阵功能的相关操作技巧,对PHP感兴趣的朋友可以参考下本篇文章。

本文实例讲述了PHP实现顺时针打印矩阵的方法。分享给大家供大家参考,具体如下:

问题

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1234

5678

9101112

13141516

则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

解决方法

就是一圈一圈地打印,只要控制好循环就可以。

注意单行单列的情况。

实现代码<?php

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打印矩阵,PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例相关推荐

  1. python顺时针打印矩阵_python实现顺时针打印矩阵

    面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下 问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵: 则依次打印出数字1,2,3,4,8, ...

  2. 打印完全二叉树java_java 完全二叉树的构建与四种遍历方法示例

    本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1  2  4  5  3  6  7 中序遍历结果应该为:4  2  5  ...

  3. python 打印xml文档树_Python构建XML树结构的方法示例

    本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...

  4. 螺旋矩阵的上下左右四指针解法

    <螺旋矩阵的上下左右四指针解法>   本文记录一下LeetCode上的两道螺旋矩阵题目的解法,感觉比较有趣,记录一下. 螺旋矩阵 Runtime:0 ms, faster than 100 ...

  5. MxN螺旋矩阵(由外向内)

    问题描述 按顺时针方向构建一个MxN的螺旋矩阵(或按顺时针方向螺旋访问一个MxN的矩阵):在不构造螺旋矩阵的情况下,给定坐标i.j值求其对应的值f(i, j).如对11x7 矩阵, f(4, 0) = ...

  6. 创新工场面试题——输出螺旋矩阵

    前些日子被叫去创新工场面试,经一番面试,面试知道我工程能力较强,算法比较差,就问了我一个算法题:输出螺旋矩阵.哎,这个题以前做过,有大致的想法,但是战场上就是写不出来.悲剧了,今天知道没戏了. 一.定 ...

  7. 悠然乱弹:螺旋矩阵和蛇型矩阵的悠然版实现

    2019独角兽企业重金招聘Python工程师标准>>> 螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵,有许多的公司面试题中有出现,这两个题的答案也有许多种,简单问一下度娘,就各自有N种实 ...

  8. C++循环输出M * N 的螺旋矩阵

    什么是螺旋矩阵? 螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环. 如图11  *   7的螺旋矩阵 如图11  * 11的螺旋矩阵

  9. 递归实现n阶螺旋矩阵问题

    一.可以手动作图,从N=3开始可以看出,一个大的螺旋矩阵的内部是一个小的矩阵. 由此引入递归的思维.递归式大概是:func (大螺旋矩阵) = 4条外边 + func(小螺旋矩阵). 二.设计递归函数 ...

最新文章

  1. Idea(二) 解决IDEA卡顿问题及相关基本配置(转)
  2. 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)
  3. js 月份加6个月_美国切削工具6月份订单较上月增加10.1
  4. pyecharts添加文字_超燃的文字云效果,用Python就能轻松get!
  5. FM算法及FFM算法
  6. Linux就这个范儿 第8章 我是Makefile
  7. SCO UNIX环境下自动增加网关的两种方法
  8. abp 基于api接口的页面内容提交
  9. 密码需要带特殊字符(二)
  10. 数据库——添加外键约束
  11. hadoop大数据架构
  12. Java实现文件下载Zip压缩
  13. 【转载】log4j日志
  14. 分层 Wyner-Ziv视频编解码——第二天
  15. 郑州财经学院第54次全国计算机,听爷爷讲故事
  16. origin画图_Origin作图过程中如何让图看起来更生动
  17. 使用阿里云服务器搭建个人博客
  18. 能给我讲解一下高通C2D的知识吗
  19. K8S-解决报错--总结日记
  20. 乐山市计算机学校的董事长是,乐山市计算机学校开学典礼隆重举行

热门文章

  1. mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法
  2. matlab破损皮革定位,matlab-code-of-TDOAFDOa 干扰源定位代码,应该在 的求解过程中有帮助。 276万源代码下载- www.pudn.com...
  3. 深入开展计算机设备保密检查,江西安远县检察院深入开展网络安全保密自查工作...
  4. java android上传文件_Java-Android-如何将txt文件上传到网站?
  5. C++ bitset类
  6. C语言中的二进制、八进制和十六进制的表示
  7. ios 画线平滑_iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表
  8. jq 比较两个时间是否在同一天_jq: 属性-class
  9. android汽车音频焦点方案,管理音频焦点  |  Android 开发者  |  Android Developers
  10. dmo Java_java DMO及增删改查代码的自动生成