力扣.旋转矩阵

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

代码区:

cpp 复制代码
class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        vector<int> ans;
        int hang=matrix.size();
        int lie=matrix[0].size();
        int start_hang=0,start_lie=0,end_hang=hang-1,end_lie=lie-1;
        int step=hang*lie;
        while(step>=1){
            if(start_hang > end_hang || start_lie > end_lie) break;
            for(int i=start_lie;i<=end_lie;i++){//行不变,列增加
                ans.push_back(matrix[start_hang][i]);
                step--;
            }
            start_hang++;
            if(start_hang > end_hang || start_lie > end_lie) break;
            for(int i=start_hang;i<=end_hang;i++){//列不变,行增加
                ans.push_back(matrix[i][end_lie]);
                step--;
            }
            end_lie--;
            if(start_hang > end_hang || start_lie > end_lie) break;
            for(int i=end_lie;i>=start_lie;i--){//行不变,列减小
                ans.push_back(matrix[end_hang][i]);
                step--;
            }
            end_hang--;
            if(start_hang > end_hang || start_lie > end_lie) break;
            for(int i=end_hang;i>=start_hang;i--){//列不变,行增加
                ans.push_back(matrix[i][start_lie]);
                step--;
            }
            start_lie++;
        }
        return ans;
    }
};

欢迎各位读者提出意见。

(菜菜奋斗小日记)

相关推荐
PAK向日葵29 分钟前
【算法导论】PDD 0817笔试题题解
算法·面试
地平线开发者3 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者3 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
星星火柴9364 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
艾莉丝努力练剑5 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
C++、Java和Python的菜鸟7 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀7 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散1127 小时前
01数据结构-Prim算法
数据结构·算法·图论
起个昵称吧7 小时前
线程相关编程、线程间通信、互斥锁
linux·算法
myzzb8 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa