剑指offer Leetcode 29.顺时针打印矩阵
发布日期:2021-05-06 23:39:46 浏览次数:51 分类:精选文章

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

image-20201206215055823

解法:

思想:

image-20201206215318255

复杂度:

​ ●时间:O(mn)

​ ●空间:O(1)

代码:

class Solution {   public:    vector
spiralOrder(vector
>& matrix) { if(matrix.empty() || matrix[0].empty()) return { }; int m = matrix.size(), n = matrix[0].size(); int l = 0, r = n - 1, t = 0, b = m - 1; vector
ans(m * n, 0); int cnt = 0; while(true){ for(int i = l; i <= r; i++) //坐标很容易写错,要格外注意,是哪个坐标在变,哪边就是i ans[cnt++] = matrix[t][i]; //图上看起来是++t与b重合,但是其实应该是判断大于 if(++t > b) break; for(int i = t; i <= b; i++) ans[cnt++] = matrix[i][r]; if(--r < l) break; for(int i = r; i >= l; i--) ans[cnt++] = matrix[b][i]; if(--b < t) break; for(int i = b; i >= t; i--) ans[cnt++] = matrix[i][l]; if(++l > r) break; } return ans; }};
上一篇:用一个package大致说明一下11g--plsql新特性
下一篇:面向大型站点的 Oracle 企业管理器网格控制体系结构

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月24日 17时17分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章