刷leetcode hot100--矩阵6/1

1.螺旋矩阵【很久】6/1【感觉就是思路的搬运工,没完全理解】

54. 螺旋矩阵 - 力扣(LeetCode)

原来想

但是如果是奇数矩阵,遍历不到中间

解决思路:

用left,right,top,down标记/限定每次遍历的元素,每次从left到right......

记得在left、top更新后check是否符合情况,不符合直接break,防止多遍历

【LeetCode 每日一题】54. 螺旋矩阵 | 手写图解版思路 + 代码讲解_哔哩哔哩_bilibili

复制代码
class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        vector<int> res;
        int top = 0;
        int down = m-1;
        int left = 0;
        int right = n-1;
        while(left<=right && top<=down ){
            for(int i = left;i<=right;i++){
                res.push_back(matrix[top][i]);
                cout<<matrix[top][i]<<endl;
            }
            top++;
            for(int i = top;i<=down;i++){
                res.push_back(matrix[i][right]);
            }
            if(top<=down){
                right--;
            }else{
                break;
            }
            for(int i = right;i>=left;i--){
                res.push_back(matrix[down][i]);
            }
            if(left<=right){
                down--;
            }else{
                break;
            } 
            for(int i = down;i>=top;i--){
                res.push_back(matrix[i][left]);
            }
            left++;
            
        }
        return res;
    }
};
相关推荐
偷吃的耗子14 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
dazzle1 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵1 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强1 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发1 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
池央2 小时前
ops-nn 算子库中的数据布局与混合精度策略:卷积、矩阵乘法与 RNN 的优化实践
rnn·线性代数·矩阵
张登杰踩2 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao2 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波0072 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零2 小时前
变点检测算法PELT
算法