leetcode 热题 100_螺旋矩阵

题解一:

        模拟:定义四个边界,指针按右下左上的顺序遍历,每遍历一条边,边界就减一,并且在某个方向没有可以遍历的数时直接返回。

import java.util.ArrayList;
import java.util.List;

class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
        List<Integer> list = new ArrayList<>();
        int down = matrix.length - 1;//下边界
        int right = matrix[0].length - 1;//右边界
        int up = 0;//上边界
        int left = 0;//左边界
        boolean flag;

        while (true) {
            flag = false;
            for (int i = up, j = left; j <= right; j++) {//向右
                list.add(matrix[i][j]);
                flag = true;
            }
            if (!flag) return list;
            up++;

            flag = false;
            for (int i = up, j = right; i <= down; i++) {//向下
                list.add(matrix[i][j]);
                flag = true;
            }
            if (!flag) return list;
            right--;

            flag = false;
            for (int i = down, j = right; j >= left; j--) {//向左
                list.add(matrix[i][j]);
                flag = true;
            }
            if (!flag) return list;
            down--;

            flag = false;
            for (int i = down, j = left; i >= up; i--) {//向上
                list.add(matrix[i][j]);
                flag = true;
            }
            if (!flag) return list;
            left++;
        }

    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/450086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python中的异常处理及最佳实践【第125篇—异常处理】

Python中的异常处理及最佳实践 异常处理是编写健壮、可靠和易于调试的Python代码中不可或缺的一部分。在本文中&#xff0c;我们将深入探讨Python中的异常处理机制&#xff0c;并分享一些最佳实践和代码示例&#xff0c;以帮助您更好地处理错误情况和提高代码的稳定性。 异常…

【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 问题分析及Python 代码实现

【2024泰迪杯】C 题&#xff1a;竞赛论文的辅助自动评阅 Python 代码实现 2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛 C 题&#xff1a;竞赛论文的辅助自动评阅 1 题目 一、问题背景 近年来我国各领域各层次学科竞赛百花齐放&#xff0c;层出不穷&#xff0c;学生参与度也…

NCDA大赛交互网页设计优秀作品有哪些?

现在&#xff0c;越来越多 UX/UI 设计者将互动 / 在其网站设计中添加动画元素(如鼠标悬停状态、音频或视频媒体、滚动交互等。).这样一方面可以让网站本身更加华丽有趣&#xff0c;吸引更多的访问者&#xff0c;激励访问者更加关注和阅读网站内容。这就是为什么互动网站设计已经…

CFINet

文章目录 AbstractIntroductionContributionsRelated Works锚点细化和区域候选小目标检测的特征模拟目标检测的对比学习MethodTowards Better ProposalsLimitations of Cascade RPNCourse-to-fine RPN(CRPN)Loss Function小目标检测的特征模拟范例特征Feat2Embed ModuleLoss …

speexsdp消除回声

这是testecho.c样例的程序。 初始化函数&#xff1a; SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length); 可以看头文件说明&#xff1a;配置frame_size贞大小10-20ms&#xff0c;filter_length滤波长度100-500ms 比如采样频率是16K&#xff0c;fr…

代码签名的等级有哪些?怎么申请?

代码签名有OV,EV两种安全等级的证书&#xff0c;其中OV代码签名证书与EV代码签名证书的主要区别有以下几点&#xff1a; 1. 验证深度&#xff1a; - OV代码签名证书&#xff1a;进行组织验证&#xff0c;即证书颁发机构&#xff08;CA&#xff09;会验证申请者的公司或组织的真…

笔记本电脑已接通电源但未充电怎么办?这里提供8个解决办法

序言 你的笔记本电脑即使插上电源也不会充电吗?虽然大多数情况下,当充电适配器未正确连接时会发生这种情况,但在其他情况下,过时的BIOS或电池驱动程序损坏可能是原因。无论原因是什么,如果笔记本电脑已插入电源但未充电,你可以尝试以下修复程序。 检查笔记本电脑适配器…

视频怎么转成文字?不妨试试这三款AI神器!

在数字化时代&#xff0c;视频内容日益丰富&#xff0c;但有时我们希望能够轻松提取视频中的文字信息&#xff0c;以便快速浏览、编辑或搜索。这时&#xff0c;一款高效、准确的视频转文字应用就显得尤为重要。面对市面上众多的选择&#xff0c;究竟哪款应用能够脱颖而出&#…

SSL---VPN

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS&#xff08;即支持SSL的HTTP协议&#xff09;的远程安全接入技术。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制&#…

xss.haozi.me靶场“0x00-0x0A”通关教程

君衍. 一、靶场介绍二、第一关 0x00 不做限制三、第二关 0x01 文本闭合标签绕过四、第三关 0x02 双引号闭合绕过五、第四关 0x03 过滤括号六、第五关 0x04 编码绕过七、第六关 0x05 注释闭合绕过八、第七关 0x06 换行绕过九、第八关 0x07 删除标签十、第九关 0x08 多加空格绕过…

精通 Python 装饰器:代码复用与功能增强技巧

精通 Python 装饰器&#xff1a;代码复用与功能增强技巧 引言装饰器基础装饰器的定义基本装饰器的实现方法理解 符号的用法简单装饰器示例代码 使用装饰器增强函数功能日志记录性能测试事务处理小结 装饰器进阶应用管理用户认证缓存机制的实现参数化装饰器的创建和应用多个装饰…

Android中单例模式正确实现方式

1. 饿汉模式 -线程安全 在类加载时进行实例化&#xff0c; 线程安全&#xff0c;但会导致类加载时间变长。饿汉模式如果使用过多&#xff0c;可能会对App启动耗时带来不利影响。 2. 懒汉模式 -线程不安全 没有加锁&#xff0c; 因此线程不安全。 3. 两次判空 加同步锁 -线程不…

JVM-3

HotSpot虚拟机对象 我在网上看了很多相关的文章&#xff0c;发现在创建对象和对象的结构中内容都不太一样&#xff0c;一些关键字也很不同&#xff0c;于是我通过参考《深入理解Java虚拟机》这本书&#xff0c;自己总结了一篇。 1.对象的创建 当JVM收到一条创建对象的字节码…

基于DiT,支持4K图像生成,华为诺亚0.6B文生图模型PixArt-Σ来了

这个模型和 Sora 一样采用了 DiT 框架。 众所周知&#xff0c;开发顶级的文生图&#xff08;T2I&#xff09;模型需要大量资源&#xff0c;因此资源有限的个人研究者基本都不可能承担得起&#xff0c;这也成为了 AIGC&#xff08;人工智能内容生成&#xff09;社区创新的一大阻…

C++的学习

代码练习 输入一个字符串&#xff0c;统计其中大写字母、小写字母、数字、空格以及其他字符的个数 #include <iostream>using namespace std;int main() {cout << "请输入一个字符串" << endl;string str;getline(cin,str);int capital 0;int l…

蜂窝物联:智慧水产养殖解决方案

一、系统介绍 集约化水产养殖水质在线监控系统是面向水产养殖集约、高产、高效、生态、安全的发展需求&#xff0c;基于智能传感、无线传感网、通信、智能处理与智能控制等物联网技术开发的&#xff0c;集水质环境参数在线采集、无线传输、智能处理、预警信息发布、决策支持、…

功能测试转自动化测试好不好转型?

手工测试做了好多年&#xff0c;点点点成了每天必须做的事情。但是随着自动化测试趋势的日渐明显&#xff0c;以及受到薪资、技能的双重考验&#xff0c;掌握自动化测试成为了必备技能。 手工转自动化测试&#xff0c;不是一蹴而就的。“预先善其事&#xff0c;必先利其器”&a…

如何看待Linux桌面操作系统的火速增长

文章目录 1. 使用过Linux桌面操作系统吗&#xff1f;Linux系统有什么优势&#xff1f;对于Linux桌面操作系统份额的火速增长怎么看呢认为未来Linux会主导桌面操作系统吗&#xff1f; #如何看待Linux桌面操作系统的火速增长&#xff1f; 1. 使用过Linux桌面操作系统吗&#xff…

LeetCode 707. 设计链表 (JAVA)

1.题目 2. 思路分析 1.我们要设置一个虚拟头节点&#xff0c;因为这个虚拟头节点对于增加节点操作和删除节点操作都很方便。 2.仔细读题&#xff0c;题目中说链表中的节点下标是从0开始的。也就是说第一个节点下标为0。 3.增加节点和删除节点的操作我们都要获取到它前一个的节…