力扣.旋转矩阵

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;
    }
};

欢迎各位读者提出意见。

(菜菜奋斗小日记)

相关推荐
wen__xvn4 分钟前
每日一题洛谷P8716 [蓝桥杯 2020 省 AB2] 回文日期c++
c++·算法·蓝桥杯
梭七y8 分钟前
【力扣hot100题】(027)两数相加
算法·leetcode·职场和发展
破东风13 分钟前
leetcode每日一题:向字符串添加空格
算法·leetcode·模拟
rigidwill66614 分钟前
LeetCode hot 100—二叉搜索树中第K小的元素
数据结构·c++·算法·leetcode·职场和发展
银河小铁骑plus18 分钟前
力扣hot100_贪心算法
算法·leetcode·贪心算法
小郝 小郝22 分钟前
(C语言)指针运算 习题练习1.2(压轴难题)
java·开发语言·算法
welkin35 分钟前
算法区间合并问题
前端·算法
星途码客1 小时前
C++位运算精要:高效解题的利器
java·c++·算法
东雁西飞1 小时前
MATLAB 控制系统设计与仿真 - 33
开发语言·算法·matlab·机器人·自动控制
Joyee6912 小时前
文本领域的在线协作引擎——OT 算法的原理与应用
算法