- 博客(33)
- 收藏
- 关注
原创 力扣128. 最长连续序列 || 452. 用最少数量的箭引爆气球
在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被 引爆。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。若当前气球的左端>上支箭矢的位置(上一个范围的右端点),表明需要新加一支箭,并更新当前箭的位置为当前气球的右端点。接下来只需要判断,下一个坐标的左侧,是否大于我们这个坐标的右侧即可判断出是否覆盖。
2025-03-18 22:38:13
202
原创 操作系统进程调度全解析:PCB结构、虚拟内存管理与并发控制实战
本文深入解析操作系统进程调度的核心机制,通过游戏存档、电影院排队等生活化类比,阐述进程作为资源分配基本单位的特性。重点剖析进程控制块(PCB)的结构,详解PID、内存指针、文件描述符表等核心属性,揭示进程状态切换(就绪/运行/阻塞)与优先级调度逻辑。通过厨师并行烹饪与单核并发切换的对比,厘清并行与并发的本质差异,并阐释上下文保存机制如何实现进程无缝切换。结合虚拟地址空间原理图,说明操作系统如何通过地址转换实现进程内存隔离与通信,为理解多任务调度、资源分配及进程间交互提供系统性视角。
2025-03-16 23:30:20
455
原创 力扣143重排链表
本文详解LeetCode 143重排链表问题的核心解法,通过三步法实现链表结构重组:① 快慢指针法精准定位链表中点(时间复杂度O(n));② 原地反转后半链表,详细图解指针操作避免节点丢失(包含暂存next节点等关键技巧);③ 双指针交叉合并两段链表,配合示意图解析节点连接顺序。提供Java代码实现并对比数组解法,强调O(1)空间复杂度优势。深入探讨快慢指针边界条件(fast.next与fast.next.next双校验),解析链表反转时pre/cur/temp三指针协作机制,适合算法面试备考及链表操作进阶
2025-03-16 22:55:47
626
原创 得物 一面
在传统基于会话和 Cookie 的身份验证中,会话信息会存于服务器内存或数据库中。但是在集群中不同服务器之间无法共享会话信息,就会导致用户在不同服务器之间切换需要重新登录,或者引入其他的共享机制(如 Redis),增加了性能开销。而 JWT 令牌由于具有无状态性,不依赖于服务端存储信息。JWT 令牌自身就携带了身份验证和会话信息。不同的服务器之间只需要有正确的密钥就可以正确的解析出 JWT 令牌,而无需引入额外的共享机制。
2025-03-16 10:03:40
1780
原创 MySQL 深度分页如何优化?
例如查询1000010010页数据,mysql会先查询出100010页,再抛弃100000。这个操作会产生大量的无用IO/CPU消耗。
2025-03-14 00:01:59
289
原创 Redis三大件 穿透、雪崩、击穿
元素"apple“经过k个不同的哈希函数计算后,得到k个哈希值h1(“apple”)、h2(“apple”)…缓存穿透是指客户端发来的请求,在缓存和数据库中都无法找到,那么因此缓存就永远不会存在,所以每次请求都会被打到数据库。如果过期,则先使用Redis中的旧数据,然后使用异步单线程去数据库获取新数据,然后重新缓存到Redis。预加载所有可能存在的数据哈希值到布隆过滤器中,查询时先判断数据是否存在。将元素 y 通过同样的 k 个哈希函数计算,得到 k 个位置。缓存永不过期,但存储数据时附加逻辑过期时间。
2025-03-14 00:01:32
626
原创 【数据库原理】实验报告-实验10 索引和数据库的安全性
实验 目的 或 要求1、明确索引的概念、分类及作用 2、掌握创建索引的SQL语法格式 3、掌握windows身份验证与SQL Server身份验证的区别 4、掌握登录账户与数据库用户的区别 5、掌握服务器角色和数据库角色的区别 6、掌握grant、revoke语言的语法格式实验 环境SQL Server 2014实验内容或 实验题目1、为电子商务系统数据库中的会员表member创建一个唯一性索引memusername,以提高根据会员用户名usern
2024-08-31 21:26:32
759
原创 【数据库原理】实验报告-实验9 存储过程和触发器
实验 目的 或 要求1、掌握存储过程的概念、作用、分类及对应的创建、删除语句的语法格式 2、掌握触发器的概念、作用、分类及对应的创建、删除语句的语法格式 3、了解插入表inserted和删除表deleted的作用及其用法实验 环境SQL Server 2014实验内容或 实验题目1、创建并执行一个无参数的存储过程proc_product1,通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息:包括商品编号、商品名称、品牌、库存量、单价和上架时间信息
2024-08-31 21:25:15
1231
原创 【数据库原理】实验报告-实验8 T_SQL编程
实验 目的 或 要求1、 掌握 T_SQL 编程基础 2、 掌握 T_SQL 流程控制语句 2、熟练运用 T_SQL 的条件语句,WHILE 语句等求解实际问题。实验 环境SQL Server 2014实验内容或 实验题目以电子商务系统数据库 ecommerce 为例 1、在 ecommerce 数据库,针对会员表 member 首先创建一个“呼和浩特地区”会员的视图 view_hohhot,然后通过该视图查询来自“呼和浩特”地区的会员信息,用批处理命令语句将
2024-08-31 21:23:53
877
原创 【数据库原理】实验报告-实验7 SQL数据更新和视图
实验 目的 或 要求1、掌握SQL数据更新(插入、修改、删除)语句 2、掌握创建、删除和查询视图的方法,验证可更新视图和不可更新视图。 3、运用SQL数据更新语句解决电子商务系统数据库中的数据更新问题 4、运用SQL视图创建语句创建视图,并基于视图进行查询,体会视图查询的优点实验 环境SQL Server 2014实验内容或 实验题目(1)向商品类别表category中插入一条记录(801,‘座椅套’,‘各种品牌的汽车座套’) (2)向商品表produc
2024-08-31 21:22:00
1533
原创 【数据库原理】实验报告-实验6 SQL数据查询—单表查询
实验 目的 或 要求1、 掌握where、order by、group by等子句的含义、作用和语法格式 2、 掌握top、distinct、like、as等查询关键字的含义、作用和语法格式 3、 掌握比较运算符、逻辑运算符、范围运算符等的含义和作用 4、 掌握count、max、min、avg等聚集函数的含义和作用 5、 以“电子商务系统”数据库为例,熟练运用SQL数据查询语句完成各类单表查询问题的求解 实验 环境SQL Server 2014实验内
2024-08-31 21:18:21
1831
原创 【数据库原理】实验报告-实验5数据库完整性约束的实现与验证
员工表:employee(empno,empname,depno,sex,telephone,username,userpwd),主码为empno,depno参照部门表department的主码属性depno。员工表:employee(empno,empname,depno,sex,telephone,username,userpwd),主码为empno,depno参照部门表department的主码属性depno。无法在表'orders' 中可为Null 的列上定义PRIMARY KEY 约束。
2024-08-31 21:00:42
1073
原创 【数据库原理】实验报告-实验4SQL数据定义语句
订单表:orders(orderno,memno,prono,qty,discount,totalmoney,orderdate,paydate), 属性prono参照商品表product的属性prono,memno参照会员表member的属性memno。商品表:product(prono,proname,brand,stock,supno,price,cost,picture,catno,ontime,status),要求proname不能取空值。
2024-08-31 20:57:18
990
原创 【数据库原理】实验报告-实验3SQL Server SSMS工具添加数据
(2)由于product表中使用了supplier表的外键supno,所以先创建供应商表supplier。由于orders表中使用了member表的外键memno,所以先创建会员表member。(1): 商品类别表category。(1)商品类别表category。(7)部门表department。(6)部门表department。华为P50 4G全网通智能手机。小米EA55金属全面屏平板电视。联想小新Air14笔记本电脑。索尼HDR-CX405摄像机。(2)商品表product。
2024-08-31 20:52:22
1131
原创 【数据库原理】实验报告-实验1数据库设计
2、以“电子商务”为例,从消费者购买商品、商家处理订单并发货这两个关键业务角度出发,进行“电子商务系统”数据库需求分析,明确“电子商务系统”数据库涉及的实体、实体的属性以及实体和实体之间的联系。属性:物流ID (ShippingID),发货状态 (ShippingStatus),物流单号 (TrackingNumber), 发货时间 (ShippingDate)联系:商品与订单之间是多对多的关系,且包含单价和数量,即一个订单可以包含多个商品,一个商品可以出现在多个订单中。订单与商品之间是多对多的关系.
2024-08-30 13:23:18
762
1
原创 IMAUOJ-两提高,一降低
i < n;i++) {i < n;i++) {//尾指针i < n/2;i++) {last--;first++;last = n-1;return sex;
2023-11-28 21:13:41
448
原创 IMAUOJ-1328: 发工资
但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?作为农大的老师,最盼望的日子就是每月的16号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵。这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。第一行是一个整数n(n<100),表示老师的人数,接下来有n行,每行表示一个老师的工资。
2023-11-14 20:44:56
206
原创 IMAUOJ-1303: 胖老鼠的交易
胖老鼠准备M磅的猫粮,准备与守卫仓库的猫交易他最爱吃的JavaBean。第i个房间包含J[I]的JavaBeans,需要F[I]磅的猫粮交换。每个房间可以按比例部分交换,你的任务是计算胖老鼠能获得的最多的JavaBeans。输入数据有多组,每组数据第一行包括两个正整数M、N,接下来有N行,每行有两个数J[I]和F[I],表示第i个房间JavaBean数量和需要的猫粮数量。当M和N都为-1输入结束。对于每组输入数据,计算胖老鼠能获得的最大JavaBean数量并输出,结果保留三位小数,每个输出占一行。
2023-11-14 20:39:03
255
1
原创 IMAUOJ-1304: 今年暑假不AC||1302: 追星族
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。
2023-11-14 20:37:34
230
原创 JavaEE线程池
线程池的创建方法一共有七种,但总体分为两类通过 Executors工厂类创建. 创建方式比较简单, 但是定制能力有限.通过 ThreadPoolExecutor创建. 创建方式比较复杂, 但是定制能力强接下来我们详细看一下七个参数具体代表什么**corePoolSize:**核心线程数,线程池中始终存活的线程数。or:正式员工的数量. (正式员工, 一旦录用, 永不辞退)最大线程数,线程池中允许的最大线程数,当线程池的任务队列满了之后可以创建的最大线程数。
2023-11-12 20:57:56
90
原创 力扣148题:排序链表
归并排序是一种高效稳定的排序算法,对链表进行排序时尤其适用。它的时间复杂度为 O(n log n),因为每次归并操作都需要线性时间来合并两个有序链表。在实际应用中,归并排序在处理链表排序问题上具有重要价值。其空间复杂度为 O(log n),由于递归使用了额外的栈空间。
2023-11-12 20:57:07
78
原创 Java网络编程深度实战:UDP/TCP协议解析与Socket高效通信指南
本文详解Java网络编程中UDP与TCP协议的核心实现,通过代码实例解析Socket编程要点。UDP部分演示DatagramSocket构建回显服务器及翻译服务器,剖析无连接、数据报传输特性,对比客户端与服务端端口分配策略。TCP章节解析ServerSocket连接建立机制,使用线程池处理多客户端并发请求,提供Echo服务器完整实现代码,重点讲解字节流传输、可靠连接特性及Socket资源释放注意事项。对比TCP(面向连接/可靠传输/字节流)与UDP(无连接/不可靠/数据报)核心差异,结合多线程优化方案,解决
2023-11-12 13:34:47
49
原创 Thread类的基本用法笔记
本文详解Java多线程编程中Thread类的核心用法,包含线程创建的四种模式(继承Thread类、实现Runnable接口、匿名内部类及lambda表达式),演示通过自定义标识和interrupt机制安全终止线程,讲解join()等待机制与sleep()休眠控制,介绍TimeUnit时间单位工具类,并说明获取当前线程实例的方法。通过类比工厂生产场景,帮助理解多线程协同工作原理,提供可直接运行的代码示例,适合开发者快速掌握Java线程管理的关键技术。
2023-08-15 00:44:55
53
原创 浅谈线程状态及状态转换条件
Java 线程生命周期包含 6 种状态:NEW(新建)、RUNNABLE(运行 / 就绪)、BLOCKED(阻塞)、WAITING(无限等待)、TIME_WAITING(计时等待)和 TERMINATED(终止)。核心转换机制包括:调用start()触发 NEW→RUNNABLE,sleep()/wait()进入 TIME_WAITING/WAITING 状态,锁竞争失败转为 BLOCKED,任务结束或异常则进入 TERMINATED。理解状态切换条件(如notify()唤醒 WAITING 线程、锁释放激
2023-08-14 13:13:52
16
原创 进程和线程的区别
进程是操作系统资源分配的最小单位,拥有独立内存空间,类似独立工厂,稳定性高但资源消耗大;线程是程序执行的最小单位,共享进程资源如火车车厢,通信高效但线程崩溃可能影响整个进程。两者关键差异体现在资源独立性、创建开销(进程更耗时)和容错机制(进程隔离性强)。联系方面,一个进程可包含多个线程共享内存,均支持并发提升系统效率,但进程间通信复杂,线程间协作更简单。理解二者区别有助于优化多任务程序设计,平衡资源利用与执行效率。
2023-08-13 00:49:07
46
原创 探讨Runnable与Thread的区别
Java 多线程编程中,Runnable 接口与 Thread 类的核心差异在于设计灵活性与资源管理。Runnable 作为接口,仅定义run()方法,实现任务逻辑与线程控制的解耦,支持多继承及多线程共享同一实例,适合复杂场景(如线程池、资源共享);Thread 作为类,直接继承并耦合任务与线程,无法多继承,适用于简单线程需求。推荐优先选择 Runnable 以提高代码可维护性,而 Thread 适合快速实现轻量级线程。合理选择两者需权衡解耦需求、继承限制及资源复用目标,优化多线程性能与扩展性。
2023-08-13 00:42:54
93
空空如也
关于#泰勒级数计算sinx的值#的问题,如何解决?
2022-11-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人