刷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;
    }
};
相关推荐
大千AI助手43 分钟前
DTW模版匹配:弹性对齐的时间序列相似度度量算法
人工智能·算法·机器学习·数据挖掘·模版匹配·dtw模版匹配
YuTaoShao2 小时前
【LeetCode 热题 100】48. 旋转图像——转置+水平翻转
java·算法·leetcode·职场和发展
生态遥感监测笔记2 小时前
GEE利用已有土地利用数据选取样本点并进行分类
人工智能·算法·机器学习·分类·数据挖掘
Tony沈哲3 小时前
macOS 上为 Compose Desktop 构建跨架构图像处理 dylib:OpenCV + libraw + libheif 实践指南
opencv·算法
刘海东刘海东3 小时前
结构型智能科技的关键可行性——信息型智能向结构型智能的转变(修改提纲)
人工智能·算法·机器学习
pumpkin845144 小时前
Rust 调用 C 函数的 FFI
c语言·算法·rust
挺菜的4 小时前
【算法刷题记录(简单题)003】统计大写字母个数(java代码实现)
java·数据结构·算法
mit6.8244 小时前
7.6 优先队列| dijkstra | hash | rust
算法
2401_858286115 小时前
125.【C语言】数据结构之归并排序递归解法
c语言·开发语言·数据结构·算法·排序算法·归并排序