/**
* @param {number[][]} matrix
* @return {number[]}
*/
var spiralOrder = function (matrix) {
if (matrix.length == 0) return [];
let left = 0;
let top = 0;
let right = matrix[0].length - 1;
let bottom = matrix.length - 1 ;
let res = [];
while (left < right && top < bottom) {
for (let i = left; i < right; i++) res.push(matrix[top][i]); // 上行 注意这里是<right 而不是<=right
for (let i = top; i < bottom; i++) res.push(matrix[i][right]); // 右列 注意这里是<bottom 而不是<=bottom
for (let i = right; i > left; i--) res.push(matrix[bottom][i]); // 下行 注意这里是<left 而不是<=left
for (let i = bottom; i > top; i--) res.push(matrix[i][left]);
right--;
top++;
bottom--;
left++;
}
if (top == bottom) {
for (let i = left; i <= right; i++) { res.push(matrix[top][i]) }
} else if (left == right) {
for (let i = top; i <= bottom; i++) { res.push(matrix[i][right]) }
}
return res
};
02-25
224
08-07
224
09-30
6110