php打印矩阵,PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例
这篇文章主要介绍了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实现顺时针打印矩阵(螺旋矩阵)的方法示例相关推荐
- python顺时针打印矩阵_python实现顺时针打印矩阵
面试题之顺时针打印矩阵,Python实现,供大家参考,具体内容如下 问题描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,输入如下矩阵: 则依次打印出数字1,2,3,4,8, ...
- 打印完全二叉树java_java 完全二叉树的构建与四种遍历方法示例
本来就是基础知识,不能丢的太干净,今天竟然花了那么长的时间才写出来,记一下. 有如下的一颗完全二叉树: 先序遍历结果应该为:1 2 4 5 3 6 7 中序遍历结果应该为:4 2 5 ...
- python 打印xml文档树_Python构建XML树结构的方法示例
本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...
- 螺旋矩阵的上下左右四指针解法
<螺旋矩阵的上下左右四指针解法> 本文记录一下LeetCode上的两道螺旋矩阵题目的解法,感觉比较有趣,记录一下. 螺旋矩阵 Runtime:0 ms, faster than 100 ...
- MxN螺旋矩阵(由外向内)
问题描述 按顺时针方向构建一个MxN的螺旋矩阵(或按顺时针方向螺旋访问一个MxN的矩阵):在不构造螺旋矩阵的情况下,给定坐标i.j值求其对应的值f(i, j).如对11x7 矩阵, f(4, 0) = ...
- 创新工场面试题——输出螺旋矩阵
前些日子被叫去创新工场面试,经一番面试,面试知道我工程能力较强,算法比较差,就问了我一个算法题:输出螺旋矩阵.哎,这个题以前做过,有大致的想法,但是战场上就是写不出来.悲剧了,今天知道没戏了. 一.定 ...
- 悠然乱弹:螺旋矩阵和蛇型矩阵的悠然版实现
2019独角兽企业重金招聘Python工程师标准>>> 螺旋矩阵和蛇型矩阵,是两个比较有趣的矩阵,有许多的公司面试题中有出现,这两个题的答案也有许多种,简单问一下度娘,就各自有N种实 ...
- C++循环输出M * N 的螺旋矩阵
什么是螺旋矩阵? 螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环. 如图11 * 7的螺旋矩阵 如图11 * 11的螺旋矩阵
- 递归实现n阶螺旋矩阵问题
一.可以手动作图,从N=3开始可以看出,一个大的螺旋矩阵的内部是一个小的矩阵. 由此引入递归的思维.递归式大概是:func (大螺旋矩阵) = 4条外边 + func(小螺旋矩阵). 二.设计递归函数 ...
最新文章
- Idea(二) 解决IDEA卡顿问题及相关基本配置(转)
- 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)
- js 月份加6个月_美国切削工具6月份订单较上月增加10.1
- pyecharts添加文字_超燃的文字云效果,用Python就能轻松get!
- FM算法及FFM算法
- Linux就这个范儿 第8章 我是Makefile
- SCO UNIX环境下自动增加网关的两种方法
- abp 基于api接口的页面内容提交
- 密码需要带特殊字符(二)
- 数据库——添加外键约束
- hadoop大数据架构
- Java实现文件下载Zip压缩
- 【转载】log4j日志
- 分层 Wyner-Ziv视频编解码——第二天
- 郑州财经学院第54次全国计算机,听爷爷讲故事
- origin画图_Origin作图过程中如何让图看起来更生动
- 使用阿里云服务器搭建个人博客
- 能给我讲解一下高通C2D的知识吗
- K8S-解决报错--总结日记
- 乐山市计算机学校的董事长是,乐山市计算机学校开学典礼隆重举行
热门文章
- mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法
- matlab破损皮革定位,matlab-code-of-TDOAFDOa 干扰源定位代码,应该在 的求解过程中有帮助。 276万源代码下载- www.pudn.com...
- 深入开展计算机设备保密检查,江西安远县检察院深入开展网络安全保密自查工作...
- java android上传文件_Java-Android-如何将txt文件上传到网站?
- C++ bitset类
- C语言中的二进制、八进制和十六进制的表示
- ios 画线平滑_iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表
- jq 比较两个时间是否在同一天_jq: 属性-class
- android汽车音频焦点方案,管理音频焦点 | Android 开发者 | Android Developers
- dmo Java_java DMO及增删改查代码的自动生成