class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
int len1=matrix.size();//如果是[[]]边界条件,len1=1,len2=0的,后面虽然边界没有反映,但是依然会返回空数组
if(len1==)
return res;
int len2=matrix[].size();//但如果[]边界条件,len1=0,len2那句话就卡死了,所以这个len1==0的判断要放在求len2前面,错过 if(len1== && len2==)
{
res.push_back(matrix[][]);
return res;
} for(int i=;i<((min(len1,len2)+)/);i++)//根据分析,每一个最外层显示完毕后,下一个是【i,i】为开头的内心的显示,没用递归,嫌麻烦,写成循环了
{
for(int j=i;j<(len2-i);j++)//第一行(从左到右)
res.push_back(matrix[i][j]); if((len1-*i)>)//最后一列(从上到下),注意开头被第一行的尾巴显示过了
{
for(int j=i+;j<(len1-i);j++)
res.push_back(matrix[j][len2--i]);
} if((len2-*i)> && (len1-*i)>)//最后一行(从右往左),注意开头被最后一列的尾巴显示过了
{
for(int j=(len2--i);j>=i;j--)
res.push_back(matrix[len1--i][j]);
} if((len1-*i-)> && (len2-*i)>)//第一列(从下往上),注意开头和结尾都被别人显示过了
{
for(int j=(len1--i);j>i;j--)
res.push_back(matrix[j][i]);
}
//上述这些虽然看起来复杂,但是只要画图,思路清晰就能写出来
//要注意每个判断、索引啥的,都得考虑i的值
//要注意第一行不需要判断,因为一定存在,最后一列只要判断行数够不够即可
//最后一行和第一列要判断行数、列数两个条件都够不够,错过
} return res;
}
};

分析:

如注释,错了两处,惭愧啊,这个还在剑指offer看过,第二个这种错误还能犯,注意力太不集中了,第一个倒是头疼了一下,cout检测过程中突然想到的。

状态不好,晚上还得开周会,今天不做了。

leecode第五十四题(螺旋矩阵)的更多相关文章

  1. leecode第五十九题(螺旋矩阵 II)

    class Solution { public: vector<vector<int>> generateMatrix(int n) { )//特殊情况 { vector< ...

  2. 《剑指offer》第五十四题(二叉搜索树的第k个结点)

    // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点. #include <iostream> #include "BinaryTr ...

  3. 经典算法题每日演练——第十四题 Prim算法

    原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过 ...

  4. 网络流二十四题,题解summary

    没有全部写完,有几题以后再补吧. 第一题:最简单的:飞行员配对方案问题 讲讲这个题目为什么可以用网络流? 因为这个题目是要进行两两之间的匹配,这个就可以想到用二分图匹配,二分图匹配又可以用网络流写. ...

  5. CTF---Web入门第十四题 忘记密码了

    忘记密码了分值:20 来源: Justatest 难度:中 参与人数:7706人 Get Flag:2232人 答题人数:2386人 解题通过率:94% 找回密码 格式:SimCTF{ } 解题链接: ...

  6. 第三百五十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection)

    第三百五十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection) Scrapy提供了方便的收集数据的机制.数据以key/value方式存储,值大多是计数 ...

  7. “全栈2019”Java第五十四章:多态详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  9. 【python】Leetcode每日一题-螺旋矩阵2

    [python]Leetcode每日一题-螺旋矩阵2 [题目描述] 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . ...

随机推荐

  1. mybatis的dao的mapper写法

    ## MyBatis的Dao编写[mapper代理方式实现] step1: 写一个接口,并写抽象方法 package com.sjl.mapper; import com.sjl.model.User ...

  2. EDK II之DXE Core框架简介

    本文旨在简单的介绍一下DXE阶段的工作原理: UDK2015的开源代码下载:https://github.com/tianocore/tianocore.github.io/wiki/EDK-II D ...

  3. daemon进程fork一次和fork两次的区别?

    守护进程也称为精灵进程(Daemon),是运行在后台的一种特殊的进程.它独立于控制终端并且周期性的执行某种任务负等待处理某些发生的事件.因为他们没有控制终端,所以说他们是在后台运行的. 守护进程的特点 ...

  4. paymob QB冲值接口

    static string PostPaymob() { string url = "http://www.paymob.cn/getorderinfo/index"; //统一分 ...

  5. 爬虫的基本操作 requests / BeautifulSoup 的使用

    爬虫的基本操作 爬虫基础知识 什么是爬虫? 在最开始,还没有诞生Google和百度等一系列搜索引擎的公司的时候,人们进入一些公司的网站只能通过在浏览器地址栏输入网址的方式访问,如同在很早之前前手机不流 ...

  6. MYSQL之MHA集群

    环境 manager 192.168.137.141 master1 192.168.137.144 master2 192.168.137.145 slave 192.168.137.141 vip ...

  7. Android之udp传输

    注意除了添加Internet权限外,还要添加两行代码 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDi ...

  8. python简说(二十七)sys.argv

    sys.argv,是获取到运行python文件的时候传入的参数 可以在pycharm中点击 if len(sys.argv)>1: if sys.argv[1]=='--help': quit( ...

  9. Codeforces 817C Really Big Numbers - 二分法 - 数论

    Ivan likes to learn different things about numbers, but he is especially interested in really big nu ...

  10. 3545: [ONTAK2010]Peaks 平衡树,最小生成树

    链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3545 离线询问,按照权值排个序 就是在克鲁斯卡尔时候维护个treap,到时候挨个查询一下就好 ...