题目
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
示例 2:
输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]
限制:
0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
1.设定边界
/*** @param {number[][]} matrix* @return {number[]}*/var spiralOrder = function (matrix) {const row = matrix.lengthif (row === 0) return []const col = matrix[0].lengthif (col === 0) return []const res = []let l = 0, r = col - 1, u = 0, d = row - 1while (res.length < (row * col)) {for (let i = l; i <= r; i++) {res.push(matrix[u][i])}u++if (u > d) breakfor (let i = u; i <= d; i++) {res.push(matrix[i][r])}r--if (r < l) breakfor (let i = r; i >= l; i--) {res.push(matrix[d][i])}d--if (d < u) breakfor (let i = d; i >= u; i--) {res.push(matrix[i][l])}l++if (l > r) break}return res};
