54. Spiral Matrix

来源:互联网 发布:战地2优化太差 编辑:程序博客网 时间:2024/06/01 09:59

这道题是说给一个矩阵,把矩阵中的数以螺旋型输出来。

这个题一开始我想用递归做,定义一个方向,但是因为没有注意到每一行或者每一列遍历完了之后,矩阵边界都会变,没有注意这个,所以错了。看了别人的代码,解决这个方法是定义四个边界,随时调整。

class Solution {public:    vector<int> spiralOrder(vector<vector<int>>& matrix) {        vector<int> ret;        if(matrix.empty())  return ret;        int row = matrix.size();        int col = matrix[0].size();                int rowBegin = 0;        int rowEnd = row - 1;        int colBegin = 0;        int colEnd = col - 1;                while(rowBegin <= rowEnd && colBegin <= colEnd){            for(int j = colBegin; j <= colEnd; ++j){                ret.push_back(matrix[rowBegin][j]);            }            rowBegin++;            for(int i = rowBegin; i <= rowEnd; ++i){                ret.push_back(matrix[i][colEnd]);            }            colEnd--;            if(rowBegin <= rowEnd){                for(int j = colEnd; j >= colBegin; --j){                    ret.push_back(matrix[rowEnd][j]);                }            }            rowEnd--;            if(colBegin <= colEnd){                for(int i = rowEnd; i >= rowBegin; --i){                    ret.push_back(matrix[i][colBegin]);                }            }            colBegin++;        }        return ret;    }};


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大联盟ping很高怎么办 酷派手机弹广告怎么办 孕早期肚子紧绷怎么办 怀孕2个月同房了怎么办 怀孕前三月同房了怎么办 人流前三天同房了怎么办 人流后三天同房了怎么办 吃避孕药后月经量少怎么办 排卵日同房不想怀孕怎么办 排卵日同房没有怀孕怎么办 想怀孕想生儿子怎么办 到期大姨妈不来怎么办 怕怀孕月经不来怎么办 宫颈环扎后宫缩怎么办 来例假刺激外阴高潮了怎么办 客人消费完说没钱怎么办? 孕13周血糖偏高怎么办 餐后血糖高14点怎么办 餐后血糖20多怎么办 空腹血糖6.6饭后9.2怎么办 键盘shift键失效了怎么办 灵异附身夫妻不合怎么办 鞋子买大了半码怎么办 鞋子买小了半码怎么办 黑布鞋鞋面白了怎么办 黑布鞋不黑了怎么办 黑布鞋退白了怎么办 老北京布鞋款式太少怎么办 老人输液抽搐后昏迷怎么办 头七家里有狗怎么办 股票退市股民的钱怎么办 美国股票退市股民怎么办 百度云字幕和视频不同步怎么办 百度云加载字幕有延迟怎么办 很难适应新环境怎么办 蜘蛛丝碰到嘴唇上起包有毒怎么办? 电瓶车在路上爆胎了怎么办 嘴被虫子咬肿了怎么办 高铁管家购票失败怎么办 高铁车厢空调冷怎么办 高铁票过了时间怎么办