解题思路:
按照他的输出要求走一边就行
1.入股数组为空,返回空数组
2.定义4个边界以及当前方向
left=0;right=3;top=0;bottom=3
3.当左边界小于等于右边界,且上边界小于等于下边界时,执行while循环:
按照右下左上的顺序,依次将路径上的字符添加到结果里。
while(left<=right&&top<=bottom)
4.while循环结束后,返回结果。
代码:
let left=0;
//这里计算列最后一个索引的值
let right=matrix[0].length-1;
let top=0;
//这里计算的是行最后一个索引的值
let buttom=matrix.length-1;
let direction="right"
const result=[];
//方向按照右下左上循环进行
while(left<=right&&top<=buttom)
{
//往右移动
if(direction==="right")
{
for(let i=left;i<=right;i++)
{
result.push(matrix[top][i]);
}
direction="buttom";
top++;
}
//往下移动
else if(direction ==="buttom"){
for(let i=top;i<=buttom;i++)
{
result.push(matrix[i][right]);
}
direction="left";
right--;
}
//往左移动
else if(direction ==="left"){
for(let i=right;i>=left;i--)
{
result.push(matrix[buttom][i]);
}
direction="top";
buttom--;
}
//往上移动
else if(direction ==="top"){
for(let i=buttom;i>=top;i--)
{
result.push(matrix[i][left]);
}
direction="right";
left++;
}
}
return result;