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;
    }
}
相关推荐
wuweijianlove3 小时前
算法性能的渐近与非渐近行为对比的技术4
算法
_dindong3 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
AI成长日志3 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
哈里谢顿4 小时前
如何实现分布式锁
面试
黎阳之光4 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
skywalker_114 小时前
力扣hot100-3(最长连续序列),4(移动零)
数据结构·算法·leetcode
6Hzlia4 小时前
【Hot 100 刷题计划】 LeetCode 17. 电话号码的字母组合 | C++ 回溯算法经典模板
c++·算法·leetcode
wfbcg4 小时前
每日算法练习:LeetCode 209. 长度最小的子数组 ✅
算法·leetcode·职场和发展
_日拱一卒5 小时前
LeetCode:除了自身以外数组的乘积
数据结构·算法·leetcode
计算机安禾5 小时前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio