• leecode第五十四题(螺旋矩阵)


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

    分析:

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

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

  • 相关阅读:
    EF系列——DbContext 和DbSet
    EF中的实体关系
    EF中的持久化场景
    Sass
    js里==和===的区别 、sass与less的区别 、style,与class区别(精解版)
    HTML页面加载和解析流程 link与script标签
    DesktopNaotu 百度桌面脑图使用事项
    BootStrap4中使用图标
    Bootstrap4
    CDN文件
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10594822.html
Copyright © 2020-2023  润新知