题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
<?php
function printMatrix($matrix)
{
$left = 0;
$right = count($matrix[0])-1;
$top = 0;
$bottom = count($matrix)-1;
$list = [];while(($right>$left)&&($bottom>$top))
{for ($i = $left; $i <= $right; $i++){array_push($list, $matrix[$left][$i]);}for($i = $top+1; $i <= $bottom; $i++){array_push($list, $matrix[$i][$right]);}for($i = $right-1; $i >= $left; $i--){array_push($list, $matrix[$bottom][$i]);}for($i = $bottom-1; $i > $top; $i--){array_push($list, $matrix[$i][$left]);}$left++;$right--;$top++;$bottom--;
}if($top == $bottom && $left<$right)
{for($i = $left; $i<=$right; $i++){array_push($list, $matrix[$top][$i]);}
}if($top<$bottom && $left == $right)
{for($i = $top; $i<=$bottom; $i++){array_push($list, $matrix[$i][$left]);}
}if($bottom == $top && $right == $left)
{array_push($list, $matrix[$left][$top]);
}
return $list;}

牛客网(剑指offer) 第十九题 顺时针打印矩阵相关推荐

  1. 牛客网剑指offer编程实践1-10题

    牛客网剑指offer编程实践1-10题 1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  2. 牛客网剑指offer编程实践41-50题

    41.和为S的连续正数序列 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两 ...

  3. 牛客网剑指offer编程实践51-66题

    51. 构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不 ...

  4. 牛客网剑指offer编程实践31-40题

    31. 整数中1出现的次数(从1到n整数中1出现的次数) 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12. ...

  5. 牛客网剑指offer编程实践21-30题

    21.栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5, ...

  6. 牛客网剑指offer编程实践11-20题

    11.二进制中1的个数 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解答: 方法: 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边 ...

  7. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  8. 剑指offer——面试题20:顺时针打印矩阵

    剑指offer--面试题20:顺时针打印矩阵 Solution1: 可参考leetCode 54题的解法 书上的思路特别好,学习之~ class Solution { public:vector< ...

  9. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  10. 牛客网剑指offer java 全部题解

    经过数月的努力,终于更完了牛客网的66道剑指offer,以下的顺序和大家在牛客网的顺序是一样的(排序也花了不少时间),希望对大家找工作/提高算法能力能起到些许帮助. 每天一道剑指offer-二维数组中 ...

最新文章

  1. aws python sdk send sns_AWS:boto3订阅SNS时的空SQS队列
  2. toad dba suite for oracle 12.1,Toad for Oracle 12.1下载地址
  3. [译]React高级话题之Context
  4. 【Android开发】文本框、按钮、文本编辑框、提交登录、单选框
  5. java怎么把system.out的东西输出到文件上
  6. Linux网络监控工具nethogs
  7. 那些用Go实现的分布式事务框架
  8. C语言课后习题(31)
  9. 一步一步学习Servlet之ServletContext对象
  10. 预训练语言模型论文分类整理
  11. kafka 安装步骤
  12. 「无捆绑不锁页」极度纯净win10 32位专业版下载地址
  13. SEGGER RTT printf 的移植和浮点数处理
  14. Markdown 数学公式
  15. 【深度解局】佛慢你:张小龙的微信成功三字诀
  16. SVD分解和矩阵的Lipschitz条件等
  17. 华为手机支持鸿蒙,2021年华为智能手机全面升级支持鸿蒙2.0
  18. 《数据结构》实验二:线性表的实验(实验报告)
  19. HDMI设计2----EDID and E-EDID
  20. 第十章 决策树与随机森林

热门文章

  1. 说下readyState属性是干嘛的,都有哪几个状态
  2. 如何在SecureCRT上使用公钥登陆Linux服务器
  3. c++学习02——queue
  4. Android系统版本与API级别对照表
  5. Python3.6全栈开发实例[006]
  6. Java Eclipse和MyEclipse快捷键
  7. python学习day11
  8. Lock和synchronized比较详解(转)
  9. 第12章 与Spring集成
  10. H.264 Quantization