博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Spiral Matrix
阅读量:4150 次
发布时间:2019-05-25

本文共 1857 字,大约阅读时间需要 6 分钟。

class Solution {//key observe: when any component is done, its beginX,endX or beginY,endX will changepublic:	vector
spiralOrder(vector
>& matrix) { vector
result; if (matrix.empty()) return result; int beginX = 0, endX = matrix[0].size() - 1; int beginY = 0, endY = matrix.size() - 1; while (true) { // From left to right for (int i = beginX; i <= endX; ++i) result.push_back(matrix[beginY][i]); if (++beginY > endY) break; // From top down for (int i = beginY; i <= endY; ++i) result.push_back(matrix[i][endX]); if (beginX > --endX) break; // From right to left for (int i = endX; i >= beginX; --i) result.push_back(matrix[endY][i]); if (beginY > --endY) break; // From bottom up for (int i = endY; i >= beginY; --i) result.push_back(matrix[i][beginX]); if (++beginX > endX) break; } return result; }};

second time

class Solution {public:    vector
spiralOrder(vector
> &matrix) { // Start typing your C/C++ solution below // DO NOT write int main() function if(matrix.size() == 0) return vector
(); int x1 = 0; int y1 = 0; int x2 = matrix.size()-1; int y2 = matrix[0].size()-1; vector
ans; while(x1 <= x2 && y1 <= y2) { //up row for(int i = y1; i <= y2; ++i) ans.push_back(matrix[x1][i]); //right column for(int i = x1+1; i <= x2; ++i) ans.push_back(matrix[i][y2]); //bottom row if(x2 != x1) for(int i = y2-1; i >= y1; --i) ans.push_back(matrix[x2][i]); //left column if(y1 != y2) for(int i = x2-1; i > x1; --i) ans.push_back(matrix[i][y1]); x1++, y1++, x2--, y2--; } return ans; }};

转载地址:http://oqxti.baihongyu.com/

你可能感兴趣的文章
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
查看>>
DeepLearning tutorial(6)易用的深度学习框架Keras简介
查看>>
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>