JS技术

leetcode笔记:Spiral Matrix - liyuefeilong的专栏 - 博客频道 - CSDN.NET

字号+ 作者:H5之家 来源:H5之家 2015-12-13 12:03 我要评论( )

欧美游戏公司◇Activision Blizzard -动视暴雪代表作:《使命召唤》系列,《魔兽世界》,《魔兽争霸》系列,《现代战争》系列,《吉他英雄》等。暴雪娱乐是一家

一. 题目描述

Given a matrix ofmn elements (mrows, n columns), return all elements of the matrix in spiral order.
For example, Given the following matrix:

[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]

You should return [1,2,3,6,9,8,7,4,5].

二. 题目分析

题意:给定一个m*n的矩阵,从外围一层一层的打印出矩阵中的元素内容。解题的方法有多种,以下采用的方法是,使用四个数字分别记录上下左右四个边界的位置(beginX,endX,beginY,endY),不断循环以收窄这些边界,最终当两个边界重叠时,结束循环。

同时,当循环完成后,即得到所求数组。

三. 示例代码

class Solution { public: vector<int> spiralOrder(vector<vector<int> >& matrix) { vector<int> result; if (matrix.empty()) return result; int beginX = 0, endX = matrix[0].size() - 1; int beginY = 0, endY = matrix.size() - 1; while (1) { // 从左到右 for (int i = beginX; i <= endX; ++i) result.push_back(matrix[beginY][i]); if (++beginY > endY) break; // 从上到下 for (int i = beginY; i <= endY; ++i) result.push_back(matrix[i][endX]); if (beginX > --endX) break; // 从右到左 for (int i = endX; i >= beginX; --i) result.push_back(matrix[endY][i]); if (beginY > --endY) break; // 从下到上 for (int i = endY; i >= beginY; --i) result.push_back(matrix[i][beginX]); if (++beginX > endX) break; } return result; } };

  • 上一篇leetcode笔记:Word Ladder
  • 顶 0 踩 0

    我的同类文章

    猜你在找

    查看评论

    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

    快速回复

    个人资料


    liyuefeilong

  • 访问:194279次
  • 积分:4243
  • 等级:

    积分:4243

  • 排名:第3816名
  • 文章搜索

    博客专栏

    leetcode笔记

    文章:78篇

    阅读:61600

    《机器学习实战》笔记

    文章:9篇

    阅读:10177

    数据结构与算法学习笔记

    文章:2篇

    阅读:3268

    模式分类理论与方法

    文章:11篇

    阅读:32310

    Digital Image Processing

    文章:8篇

    阅读:7653

    学习之路:OpenCV2

    文章:23篇

    阅读:35723

    文章分类

  • 数字图像处理(36)
  • Qt(18)
  • 传感器(3)
  • Linux系统(5)
  • OpenCV(30)
  • 解决方法(15)
  • 模式识别与机器学习(23)
  • 版本控制(2)
  • 数据结构与算法(87)
  • 信号理论(1)
  • 并行计算(1)
  • socket编程(4)
  • 大数据(1)
  • Python(8)
  • C-C++(2)
  • 文章存档

    阅读排行

  • 模式识别:感知器的实现(8303)
  • 基于SVM与人工神经网络的车牌识别系统(5878)
  • leetcode笔记:Single Number(4019)
  • 模式识别:分类回归决策树CART的研究与实现(3393)
  • 模式识别:k-均值聚类算法的研究与实现(3178)
  • 模式识别:PCA主分量分析与Fisher线性判别分析(2883)
  • (2707)
  • 模式识别:三层BP神经网络的设计与实现(2663)
  • OpenCV2学习笔记(十八):显示视频流的帧率(2510)
  • OpenCV+Qt:基于PCA主成分分析的人脸识别例程(2494)
  •  

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JavaScript复习笔记--字符串

      JavaScript复习笔记--字符串

      2016-01-27 17:16

    • Word Search -- LeetCode - Code Ganker - 博客频道 - CSDN.NET Code

      Word Search -- LeetCode - Code Ganker - 博客频道 - CSDN.NET Code

      2015-12-15 08:56

    • Swift 2.0学习笔记(Day48)——类型检查与转换 - 关东升 - 博客频道 - CSDN.NET 关东升 iO

      Swift 2.0学习笔记(Day48)——类型检查与转换 - 关东升 - 博客频道

      2015-12-14 18:16

    • 有趣的Ruby-学习笔记1 - 我可以接受失败,但我不能接受放弃。--迈克尔 乔丹 - 博客频道 - CSDN.NET

      有趣的Ruby-学习笔记1 - 我可以接受失败,但我不能接受放弃。--迈克

      2015-12-14 17:17

    网友点评
    r