
¶剑指offer – 模拟
¶剑指 Offer 29. 顺时针打印矩阵
Difficulty: 简单
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 1:
1  | 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]  | 
示例 2:
1  | 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]  | 
限制:
0 <= matrix.length <= 1000 <= matrix[i].length <= 100
Solution
1  | class Solution {  | 
时间复杂度: $O(M\cdot N)$
空间复杂度: $O(1)$,只需要四个方向变量,其中 res 是输出要求空间,不算做算法空间。
¶剑指 Offer 31. 栈的压入、弹出序列
Difficulty: 中等
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。
示例 1:
1  | 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]  | 
示例 2:
1  | 输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]  | 
提示:
0 <= pushed.length == popped.length <= 10000 <= pushed[i], popped[i] < 1000pushed是popped的排列。
Solution
1  | class Solution {  | 
时间复杂度: $O(N)$,同时遍历一次数组
空间复杂度: $O(N)$,额外栈空间
¶参考资料
图解算法数据结构 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 (leetcode-cn.com)