54. Spiral Matrix(剑指offer 19)
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
Example 1:
Input:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
Output: [1,2,3,6,9,8,7,4,5]
Example 2:
Input:
[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12]
]
Output: [1,2,3,4,8,12,11,10,9,5,6,7]

注意只有一行或者只有一列的情况
if (r1 < r2 && c1 < c2) {//避免只有一行,c1==c2的情况,避免只有一列,r1==r2的情况
class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        vector<int> list ;
        if(matrix.size()==) return list;
        int rows =matrix.size();
        int cols = matrix[].size();
        int c1 = ,c2 = cols-;
        int r1 = ,r2 = rows-;
        while(r1<=r2&&c1<=c2){
            for(int c=c1;c<=c2;c++) list.push_back(matrix[r1][c]);
            for(int r=r1+;r<=r2;r++) list.push_back(matrix[r][c2]);
            if (r1 < r2 && c1 < c2) {//避免只有一行,c1==c2的情况,避免只有一列,r1==r2的情况
                for(int c=c2-;c>=c1+;c--) list.push_back(matrix[r2][c]);
                for(int r=r2;r>=r1+;r--) list.push_back(matrix[r][c1]);
            }
            c1++;c2--;r1++;r2--;
        }
        return list;
    }
};
54. Spiral Matrix(剑指offer 19)的更多相关文章
- 54. Spiral Matrix(剑指offer--19)
		Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ... 
- 剑指 Offer 19. 正则表达式匹配 + 动态规划
		剑指 Offer 19. 正则表达式匹配 题目链接 一. 字符串匹配大致可以分为三种情况: 第一种:正则串的最后一个字符为正常字符,此时根据主串的最后一个字符是否和它相同来判断是否匹配, 如果相同,则 ... 
- 【Java】 剑指offer(19) 正则表达式匹配
		本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请实现一个函数用来匹配包含'.'和'*'的正则表达式.模式中的字符 ... 
- 剑指Offer 19. 顺时针打印矩阵 (其他)
		题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ... 
- [剑指Offer] 19.顺时针打印矩阵
		[思路]本题关键在于 右->左 和 下->上 两个循环体中的判断条件,即判断是否重复打印. class Solution { public: vector<int> print ... 
- 剑指 Offer 19. 正则表达式匹配
		题目描述 请实现一个函数用来匹配包含'. '和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次).在本题中,匹配是指字符串的所有字符匹配整个模式. ... 
- 剑指offer(19)二叉树中和为某一值的路径
		题目: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大的 ... 
- 剑指offer 19:二叉树的镜像
		题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 解题思路 这一问题明显,在进行递归遍历节点时,将根节点的左右子树进行交换,因此完成树的遍历即可. C++实现代码 /* ... 
- 剑指offer——19删除链表的节点
		题目一: 在O(1)时间内删除链表节点.给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. 书本讲得不明就里 class Solution { void DeleteNode ... 
随机推荐
- dbtool部署
			dbtool工具部署 a.附件解压到/home/oracle/dbtool b.执行以下命令chmod 755 /home/oracle/dbtool/*.shecho "alias dbt ... 
- 2018/09/13《涂抹MySQL》【MySQL复制特性】学习笔记(六)
			推荐一首歌 - <可不可以>张紫豪 好吧,随便从排行榜上找了一首 读 第十一章<MySQL的复制特性> 总结 1:复制(Replication) 应用场景? - 提高性能 (通 ... 
- 洛谷P3246 序列 [HNOI2016] 莫队/线段树+扫描线
			正解:莫队/线段树+扫描线 解题报告: 传送门! 似乎是有两种方法的,,,所以分别港下好了QAQ 第一种,莫队 看到这种询问很多区间之类的就会自然而然地想到莫队趴?然后仔细思考一下,发现复杂度似乎是欧 ... 
- iis子站点
			在iis已有的站点下可以继续添加”应用程序”,就构成子站点:需要访问子站点app下的程序,只想在controller/action前,加个app就行,即app/controller/action 这样 ... 
- 帝国cms调用栏目自定义字段(栏目简介)如何操作
			开源的cms就像一个操作系统,可以满足大部分人的需求,如果你想增加一些特殊的功能,那就二次开发呗,就像APP一样.帝国cms默认的栏目是没有调用栏目自定义字段的,我们可以增加一些概述类的文字,让读者对 ... 
- WD 蓝盘、绿盘、黑盘、红盘的区别
			绿盘,蓝盘.黑盘和红盘是西部数据根据旗下所产硬盘的特点所做的分类,通俗点讲:所谓的黑盘.蓝盘.绿盘.红盘就是指的西部数据硬盘上贴的那张纸,是黑色.蓝色.绿色.或红色. 黑盘:高性能,大缓存,速度快.代 ... 
- MySQL Split  函数
			本文地址:http://www.cnblogs.com/qiaoyihang/p/6270165.html mysql 本身并没有 split 函数,但是,我们实现累死功能的自定义函数是非常简单的 创 ... 
- 4A
			#include <iostream> using namespace std; int main() { int a; cin>>a; if((a>=4) && ... 
- 日志文件系统syslog,syslog-ng
			日志文件系统syslog,syslog-ng 余二五 2017-11-07 20:37:00 浏览127 评论0 日志 LOG 配置 主机 正则表达式 syslog 表达式 source file ... 
- (转)Mysql LIMIT如何正确对其进行优化
			以下的文章主要是对Mysql LIMIT简单介绍,我们大家都知道LIMIT子句一般是用来限制SELECT语句返回的实际行数.LIMIT取1个或是2个数字参数,如果给定的是2个参数,第一个指定要返回的第 ... 
