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;
    }
}
相关推荐
平生不喜凡桃李8 分钟前
LeetCode 两数之和/三数之和
算法·leetcode·两数之和·三数之和
C雨后彩虹9 分钟前
中文分词模拟器
java·数据结构·算法·华为·面试
a努力。9 分钟前
蚂蚁Java面试被问:流批一体架构的实现和状态管理
java·后端·websocket·spring·面试·职场和发展·架构
BLi4ee10 分钟前
【Scholarly Notes】Adaptive Model Pruning for Federated Learning
算法·机器学习·剪枝
静听松涛13310 分钟前
信息系统规划到上线全流程指南
论文阅读·面试·职场和发展·流程图
Remember_99316 分钟前
【LeetCode精选算法】二分查找专题二
java·数据结构·算法·leetcode·哈希算法
We་ct36 分钟前
LeetCode 42. 接雨水:双指针解法深度剖析与全方法汇总
前端·算法·leetcode·typescript
液态不合群1 小时前
如何提升 C# 应用中的性能
开发语言·算法·c#
诗远Yolanda1 小时前
EI国际会议-通信技术、电子学与信号处理(CTESP 2026)
图像处理·人工智能·算法·计算机视觉·机器人·信息与通信·信号处理
程序员-King.1 小时前
day165—递归—最长回文子序列(LeetCode-516)
算法·leetcode·深度优先·递归