day17(11.18)——leetcode面试经典150

54. 螺旋矩阵

今天的题是我在操作系统上想的,回来实验的,之前c的时候我应该写过这题,我以前没觉得这么复杂啊

54. 螺旋矩阵

题目:

题解:

java 复制代码
class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        // 右边界
        int r_x = matrix[0].length-1;
        int r_y = matrix.length-1;
        // 左边界
        int l_x = 0;
        int l_y = 0;
        //坐标
        int x = 0;
        int y = 0;
        List<Integer> s = new ArrayList<>();
        int flag=0; //0表示向右走,1表示向下走,2表示向左走,3表示向上走
        while(s.size() < matrix[0].length*matrix.length) {
            //向右移
            if(flag%4==0) {
                while(x<=r_x) {
                    //在数组中,上下是x,左右是y
                    s.add(matrix[y][x]);
                    x++;
                }
                x--;
                y++;
                r_x--;
            }
            else if(flag%4==1) {
                while(y<=r_y) {
                    s.add(matrix[y][x]);
                    y++;
                }
                y--;
                x--;
                r_y--;
            }
            else if(flag%4==2) {
                while(x>=l_x) {
                    s.add(matrix[y][x]);
                    x--;
                }
                x++;
                y--;
                l_x++;
            }
            else if(flag%4==3) {
                //这里不能和一圈的起始点重合,所以进行更改
                while(y>l_y) {
                    s.add(matrix[y][x]);
                    y--;
                }
                y++;
                x++;
                l_y++;
            }
            flag++;
        }
        return s;
    }
}
相关推荐
考研保研资料分享9 小时前
2022双非保研华科热能工程:三校考核、传热题与报名复盘
面试
ZhengEnCi13 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
weixin_3077791314 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
nice_lcj52016 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
吞下星星的少年·-·17 小时前
Div.3 CF 1131A题(排序,模拟)
算法·模拟·排序
圣保罗的大教堂17 小时前
leetcode 453. 最小操作次数使数组元素相等 中等
leetcode
aichitang202418 小时前
代数拓扑学与现代前沿视角
考研·算法·数学建模·ai·拓扑学·高考
二本咕咕-机械转码18 小时前
FreeRTOS深入解析(一)_链表与并发保护——哨兵循环链表、排序键游标、临界区与关调度
单片机·算法·链表
-银雾鸢尾-18 小时前
两数之和-C++实现
c++·算法