《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java



一、资源

  • 题目:

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

    示例 1:

    输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
    输出:[1,2,3,6,9,8,7,4,5]

    示例 2:

    输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
    输出:[1,2,3,4,8,12,11,10,9,5,6,7]

    限制:

    0 <= matrix.length <= 100
    0 <= matrix[i].length <= 100
    

    注意:本题与主站 54 题相同:https://leetcode-cn.com/problems/spiral-matrix/

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 上代码(经过线上OJ测试)
    import java.util.HashMap;/*** Created with IntelliJ IDEA.** @author : DuZhenYang* @version : 2022.03.01  18:01:48* description :*/
    public class LeetCode {public int[] spiralOrder(int[][] matrix) {if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {return new int[0];}int[][] go = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};HashMap<Integer, int[]> direction = new HashMap<>();direction.put(0, go[0]);direction.put(1, go[1]);direction.put(2, go[2]);direction.put(3, go[3]);int m = matrix.length;int n = matrix[0].length;int total = m * n;boolean[][] visited = new boolean[m][n];int[] result = new int[total];int row = 0;int col = 0;int newDirection = 0;for (int i = 0; i < total; i++) {result[i] = matrix[row][col];visited[row][col] = true;int newRow = row + direction.get(newDirection % 4)[0];int newCol = col + direction.get(newDirection % 4)[1];if (newRow == m || newCol == n || newRow < 0 || newCol < 0 || visited[newRow][newCol]) {newDirection++;newRow = row + direction.get(newDirection % 4)[0];newCol = col + direction.get(newDirection % 4)[1];}row = newRow;col = newCol;}return result;}
    }
    

《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java相关推荐

  1. 剑指 Offer 29. 顺时针打印矩阵

    题目 剑指offer的解题思路 顺时针打印矩阵,可以分解为每次打印一个数,顺序是从左到右,从上到下,然后从右到左,从下到上. 打印每一圈的起点(startX,startY)分别为(0,0),(1,1) ...

  2. 打印矩阵 java_【Java】 剑指offer(29) 顺时针打印矩阵

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 每次打印矩阵最外面的一圈(用方法printMatrix ...

  3. 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵

    立志用最少的代码做最高效的表达 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2, ...

  4. leetcode剑指 Offer 29. 顺时针打印矩阵

    一:题目 二:上码 class Solution {public:vector<int> spiralOrder(vector<vector<int>>& ...

  5. 【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]

    链接 https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 耗时 解题:38 min 题解:10 min 题意 输入一 ...

  6. 【算法】剑指 Offer 29. 顺时针打印矩阵

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

  7. 剑指offer——29.顺时针打印矩阵(不熟)

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

  8. 剑指Offer(29)顺时针打印矩阵

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

  9. 剑指offer 29 顺时针打印矩阵(可逆时针,任一点开始)

    原书上写的解太麻烦了,而且还没有扩展性(比如从右上角开始打印,或者逆时针打印). 此外多个for循环的起止点也让人头晕,每个方向都要单独判断步进方向,因此代码也缺少优雅性. 这里我用direction ...

最新文章

  1. 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数...
  2. 【2021年】通过vue-cli创建electron项目
  3. mac mysql php_Mac搭建php开发环境:Apache+php+MySql
  4. SensorKernel层框架分析
  5. 全面认识UML-类图元素(java)
  6. 理解和使用SQL Server中的并行
  7. Spring源码入门——DefaultBeanNameGenerator解析
  8. 整理一些MongoDB常用数据库命令
  9. 教你成为全栈工程师(Full Stack Developer) 一-各显神通总结八大类编程语言的区别...
  10. php memcache数据类型,php读取memcache二进制数据
  11. 冰点还原精灵、影子系统区别哪个好
  12. 计算机主机中的硬件组成部分,电脑的硬件组成部分及其作用各是什么
  13. linux删除某条历史命令,如何从Linux/Unix Bash shell上删除历史记录中的一条命令?...
  14. HP刀片服务器系统Flex,HP刀片服务器系统Flex-10 VC配置与VMware vSphere网络设计
  15. 玩吧公司,入职近半年的感受
  16. 华为网络计算机关闭屏幕保护,华为手机的屏幕保护太烦人了怎样才能关闭它
  17. 类的定义,成员函数和内置成员函数
  18. 想想都脊背一凉,细思极恐,大家提早醒悟
  19. dell笔记本如何关闭计算机更新,联想戴尔笔记本Win10如何彻底永久关闭更新?
  20. 操作系统-动态内存分配算法

热门文章

  1. modelsim中仿真波形设置的保存
  2. 为什么说百度教育大脑3.0,是中国教育迎来的真正智慧大脑?
  3. python 爬预警没解析前的
  4. NopCommerce架构分析-依赖注入
  5. HTML5从入门到精通(明日科技) 中文pdf扫描版
  6. 民用报警服务技术浅谈
  7. 对textfield的键盘改造成滚动选择器而不是输入键盘
  8. [ASP.NET MVC3.0]Contact Manager 之迭代开发 一
  9. Android实现导航菜单随着ListView联动,当导航菜单遇到顶部菜单时停止在哪里,并且listview仍能滑动...
  10. c++,不能声明为虚函数的函数