题目描述:
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。1
- 代码部分:
public int[] spiralOrder(int[][] matrix) {
int row = matrix.length;
if(row == 0) return new int[]{};
int col = matrix[0].length;
int left = 0,right = col-1,upper= 0,down=row-1;
int index = 0;
int[] res = new int[col*row];
while(index < res.length){
//[left,right]
for(int i = left;i<=right;i++){
res[index] = matrix[upper][i];
index ++;
if(index == res.length) return res;//判断是否超过边界
}
upper++;
//[upper,down]
for(int i = upper;i<=down;i++){
res[index] = matrix[i][right];
index ++;
if(index == res.length) return res;
}
right--;
//[right,left]
for(int i =right ;i>=left;i--){
res[index] = matrix[down][i];
index++;
if(index == res.length) return res;
}
//[down,upper]
down--;
for(int i = down;i>=upper;i--){
res[index] = matrix[i][left];
index++;
if(index == res.length) return res;
}
//更新
left++;
}
return res;
}
https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ ↩︎