https://leetcode.cn/problems/spiral-matrix/description/?envType=study-plan-v2&envId=2024-spring-sprint-100 注意每次改变边界都有判断一次
class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> ans(matrix.size()*matrix[0].size());int high=0,down=matrix.size()-1,left=0,right=matrix[0].size()-1;int flag_ans=0;while(1){for(int i=left;i<=right;i++){ans[flag_ans]=matrix[high][i];flag_ans++;}high++;if(high>down) break;for(int i=high;i<=down;i++){ans[flag_ans]=matrix[i][right];flag_ans++;}right--;if(right<left) break;for(int i=right;i>=left;i--){ans[flag_ans]=matrix[down][i];flag_ans++;}down--;if(down<high) break;for(int i=down;i>=high;i--){ans[flag_ans]=matrix[i][left];flag_ans++;}left++;if(left>right) break;}return ans;}
};
本文由博客一文多发平台 OpenWrite 发布!