题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 
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.
import java.util.ArrayList;
public class Solution {public ArrayList<Integer> printMatrix(int [][] matrix) {if (matrix == null)return null;ArrayList<Integer> result = new ArrayList<Integer>();int start = 0;while(matrix[0].length > start *2 && matrix.length > start *2){printMatrixInCircle(matrix,result,start);start++;}return  result;}public static void printMatrixInCircle(int [][]matix,ArrayList<Integer>result,int start){int endX = matix[0].length - start -1;int endY = matix.length - start -1;//从左向右打印一行for(int i = start;i <=endX;i++){result.add(matix[start][i]);}//从上到下for(int i  = start+1; i <=endY;i++)result.add(matix[i][endX]);//从右到左if(start < endX &&start < endY)for(int i = endX -1;i>= start;i--)result.add(matix[endY][i]);//从下到上if(start < endX && start < endY-1)for(int i = endY - 1;i >=start+1;i--)result.add(matix[i][start]);}
}

JAVA实现顺时针打印矩阵问题(《剑指offer》)相关推荐

  1. java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字.测试用例如下图: 测试数组 思路分析 这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历. Java代码实现 ...

  2. JAVA实现重建二叉树(《剑指offer》)

    最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...

  3. JAVA实现替换空格(《剑指offer》)

    最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...

  4. java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java

    一.每次把新遍历的链表值放到list索引为0的位置,实现逆序. public class Solution { public ArrayList printListFromTailToHead(Lis ...

  5. 【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 两道题一样的 有序 + 搜索,明摆着二分查找 但是比较懒-选取了题解里的指针做法= = 思路 & 代码 时间复杂度O(m + n) ...

  6. java 6面骰子_《剑指offer》 面试题43 n个骰子的点数 (java)

    引言:写这篇文章的初衷只是想做个笔记,因为这道题代码量有点大,有点抽象,而书上并没有详细的注释.为了加深印象和便于下次复习,做个记录. 原题:把n个骰子扔到地上,所有骰子朝上一面的点数之后为s. 输入 ...

  7. java剪绳子_14. 剪绳子(剑指 Offer 题解Java版)

    本文转载自[微信公众号:五角钱的程序员,ID:xianglin965]经微信公众号授权转载,如需转载与原文作者联系 文章目录 14. 剪绳子1. 题目链接2.题目描述3.解题思路3.1贪心3.2动态规 ...

  8. java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树

    平衡二叉树的条件:为空或者子树高度之差的绝对值小于等于1,且子树也是平衡二叉树 最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进 ...

  9. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

    Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...

最新文章

  1. 为什么多数企业选择托管SD-WAN,而不是自行组建?—Vecloud微云
  2. AI搜索外星人 发现宇宙深处72神秘光
  3. [密码学] 消息认证码基础
  4. 软件如何控制硬件、编译器和操作系统是否需要编译
  5. 你今天怎么这么好看——基于深度学习的大型现场实时美颜
  6. 数据库视频(一)——整体认识
  7. 【转】首次敏捷项目开发实践
  8. 美丽的数学家:如果您讨厌数学,这些其实都是人生故事
  9. linux服务器进程不存在,查看 Linux 服务器的进程
  10. 计算机中的类型,计算机中各种件文的类型及其作用.doc
  11. 这个黑科技耳机方便又时尚,听歌也不怕坐过
  12. 《.NET应用架构设计:原则、模式与实践》新书博客-2.1.1-设计原则简述
  13. nlp基础—9.条件随机场模型(CRF算法)
  14. viser 饼图修改颜色
  15. python豆瓣历史评分_python快速查豆瓣评分
  16. 论人类不平等起源读后感
  17. Arduino与Proteus仿真实例-HC-SRF04超声波测距仿真
  18. iOS报错 之 The app delegate must implement the window property if it wants to use
  19. web service 优缺点
  20. 协众信息技术全能UI设计培训

热门文章

  1. 解决Mac下npm权限问题
  2. SpringMVC异常处理机制详解[附带源码分析]
  3. IDEA 出现 updating indices 卡进度条问题的解决方案并加快索引速度
  4. 缓存一致性和跨服务器查询的数据异构解决方案canal
  5. 解决UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 问题(转)
  6. 如何让Git克隆到当前目录
  7. 如何在现有的ul中添加li?
  8. Python之初识模块之序列化模块
  9. CentOS 6.5的安装详解
  10. grafana3.1.0安装配置