题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

本题继续用递归的思想:

import java.util.*;
public class Solution {ArrayList<Integer> list = new ArrayList<Integer>();public ArrayList<Integer> printMatrix(int [][] matrix) {int rows = matrix.length;int columns = matrix[0].length;int start = 0;while (rows > start * 2 && columns > start * 2) {printMatrixInCircle(matrix, rows, columns, start);start++;}return list;}/*** 功能:打印一圈*/public void printMatrixInCircle(int [][] matrix, int rows, int columns, int start){// 从左到右打印一行for(int i = start; i < columns - start; i++)list.add(matrix[start][i]);// 从上到下打印一列for(int j = start + 1; j < rows - start; j++)list.add(matrix[j][columns - start - 1]);// 从右到左打印一行for(int m = columns - start - 2; m >= start && rows - start - 1 > start; m--)list.add(matrix[rows - start - 1][m]);// 从下到上打印一列for(int n = rows - start - 2; n >= start + 1 && columns - start - 1 > start; n--)list.add(matrix[n][start]);}
}

剑指offer 顺时针打印矩阵相关推荐

  1. [剑指offer]顺时针打印矩阵

    [剑指offer]顺时针打印矩阵 剑指offer-顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4, ...

  2. 剑指offer:顺时针打印矩阵(java)

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如:如果输入如下矩阵: 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 则依次打印出数字1,2,3, ...

  3. 剑指offer--20.顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针顺序依次打印出每一个数字 分析:可以把矩阵想象为若干个圈,用一个循环来打印矩阵,每次打印矩阵中的一个圈,如左图.设矩阵行rows,列是columns,打印第一圈 ...

  4. 剑指offer29顺时针打印矩阵

    class Solution {public int[] spiralOrder(int[][] matrix) {if(matrix.length == 0) return new int[0];/ ...

  5. 剑指Offer——顺时针遍历矩阵

    题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  6. 【LeetCode】剑指 Offer 17. 打印从1到最大的n位数

    [LeetCode]剑指 Offer 17. 打印从1到最大的n位数 文章目录 [LeetCode]剑指 Offer 17. 打印从1到最大的n位数 一.大数 一.大数 将 1~9 加入队列 对队列中 ...

  7. 【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...

  8. 【牛客 - 剑指offer】JZ12 矩阵中的路径 深度优先搜索DFS Java实现

    文章目录 剑指offer题解汇总 Java实现 本题链接 题目 题目主要信息 方案 深度优先搜索 剑指offer题解汇总 Java实现 https://blog.csdn.net/guliguligu ...

  9. 剑指 Offer 17. 打印从1到最大的n位数

    文章目录 解法1:回溯 https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/ 难度:简单   输入数字 ...

最新文章

  1. 更改zabbix-server的端口
  2. 洛谷P4216 [SCOI2015]情报传递(树剖+主席树)
  3. KafkaProducer初始化时涉及到哪些核心组件?
  4. python3 aes 解密
  5. boost::statechart模块实现无效结果分配测试
  6. 计算机会计的专业知识竞赛,会计知识大赛主持词范文
  7. OSPF地址汇总配置
  8. weblogic故障报错
  9. UE4笔记-UStructToJsonObjectString首字母自动转换为小写的问题及解决方法
  10. PHP 设计模式之工厂模式 (静态工厂模式)
  11. word文字覆盖问题
  12. Spring @ResponseBody未生效,无法返回json数据 前端页面显示404
  13. 技巧:如何提高git下载速度
  14. 微博相册下载助手v7.2 微博图片批量下载神器
  15. 自建speedtest测速服务器教程,Linux/Windows/群晖
  16. EFS加密解密----重装系统后
  17. 科研狗citavi/mendeley+word使用技巧外加读论文瞎琢磨
  18. 《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一2.8 现状...
  19. 宝塔面板如何添加免费的waf防火墙?
  20. 人工智能 漆桂林_认识一下计算机的新成员——人工智能

热门文章

  1. 计算机网络实验(思科模拟器Cisco Packet Tracer)——交换机配置以及虚拟局域网VLAN
  2. 变频器显示5cf1是什么意思_空调显示e0什么意思
  3. 中职计算机专业英语说课稿,高职高专英语说课稿
  4. Java Math的 floor,round和ceil的总结 ,java基础知识
  5. android自定义属性dimen,android代码里的dimen
  6. springboot介绍_Spring Boot 主类及目录结构介绍!
  7. 金蝶结账时显示系统错误h80004005_金蝶KIS云专业版(仓存模块)常见问题解决汇总...
  8. 游戏角色坐标的保存间隔_使用C++编写飞机大战游戏【手把手教程】
  9. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...
  10. matlab引擎函数,Matlab引擎库函数