刷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;
    }
};
相关推荐
heeheeai6 分钟前
决策树,随机森林,boost森林算法
算法·决策树·随机森林·kotlin·boost
(●—●)橘子……1 小时前
记力扣2271.毯子覆盖的最多白色砖块数 练习理解
数据结构·笔记·python·学习·算法·leetcode
Tiny番茄1 小时前
排序算法汇总,堆排序,归并排序,冒泡排序,插入排序
算法·排序算法
汽车仪器仪表相关领域2 小时前
南华 NHXJ-02 汽车悬架检验台:技术特性与实操应用指南
人工智能·算法·汽车·安全性测试·稳定性测试·汽车检测·年检站
m0_726965982 小时前
【算法】小点:List.remove
算法
rhy200605202 小时前
SAM的低秩特性
人工智能·算法·机器学习·语言模型
new coder2 小时前
[算法练习]第三天:定长滑动窗口
数据结构·算法
eqwaak03 小时前
科技信息差(9.29)
开发语言·科技·学习·算法
晨非辰3 小时前
《从数组到动态顺序表:数据结构与算法如何优化内存管理?》
c语言·数据结构·经验分享·笔记·其他·算法
麻雀无能为力3 小时前
第三章 鸽巢原理
笔记·算法