LCR 146. 螺旋遍历二维数组
2023-12-17 16:29:47
解题思路:
class Solution {
public int[] spiralArray(int[][] array) {
if(array.length == 0) return new int[0];
int l = 0, r = array[0].length - 1;
int t = 0, b = array.length - 1;
int x = 0;
int[] res = new int[(r + 1) * (b + 1)];
while(true) {
for(int i = l; i <= r; i++) res[x++] = array[t][i]; //从左到右
if(++t > b) break;
for(int i = t; i <= b; i++) res[x++] = array[i][r]; //从上到下
if(--r < l) break;
for(int i = r; i >= l; i--) res[x++] = array[b][i]; //从右到左
if(--b < t) break;
for(int i = b; i >= t; i--) res[x++] = array[i][l]; //从下到上
if(++l > r) break;
}
return res;
}
}
文章来源:https://blog.csdn.net/qq_61504864/article/details/135045277
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!