自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (2)
  • 收藏
  • 关注

原创 127. 单词接龙【 力扣(LeetCode) 】

基本思路是一样的,区别就在于单词的长度不固定,单词的字母范围不一样。本质上都是构图+BFS 找最短路径。的 最短转换序列 中的 单词数目。如果不存在这样的转换序列,返回 0。虽然复杂度相同,但是双向搜索的复杂度的系数会小一点。的 转换序列 是一个按下述规格形成的序列。【C 是单词长度,N 是单词个数】【C 是单词长度,N 是单词个数】

2025-03-28 10:26:23 744

原创 208. 实现 Trie (前缀树)【 力扣(LeetCode) 】

Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。【最坏情况下,就是每个字母都有 26 个后续, 则全部空间为 26 x 26】【除了初始化,其他三个操作的复杂度都为 n ,n 表示字符串长度】

2025-03-28 10:25:41 414

原创 909. 蛇梯棋【 力扣(LeetCode) 】

那么这个玩家将会顺着梯子到达方格 3 ,但 不能 顺着方格 3 上的梯子前往方格 4。(简单来说,类似飞行棋,玩家掷出骰子点数后移动对应格数,遇到单向的路径(即梯子或蛇)可以直接跳到路径的终点,但如果多个路径首尾相连,也不能连续跳多个路径)注意,玩家在每次掷骰的前进过程中最多只能爬过蛇或梯子一次:就算目的地是另一条蛇或梯子的起点,玩家也 不能 继续移动。返回达到编号为 n2 的方格所需的最少掷骰次数,如果不可能,则返回 -1。,如果该格子的值不是 -1 ,则多一个邻居,邻居为该格子的值。

2025-03-11 10:52:33 613

原创 433. 最小基因变化【 力扣(LeetCode) 】

给你两个基因序列 start 和 end ,以及一个基因库 bank ,请你找出并返回能够使 start 变化为 end 所需的最少变化次数。另有一个基因库 bank 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。一次基因变化就意味着这个基因序列中的一个字符发生了变化。基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 ‘A’、‘C’、‘G’ 和 ‘T’ 之一。注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。

2025-03-11 10:51:45 601

原创 210. 课程表 II【 力扣(LeetCode) 】

现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi。可能会有多个正确的顺序,你只要返回 任意一种 就可以了。如果不可能完成所有课程,返回 一个空数组。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示:[0,1]。每条边只遍历2次,存放入边关系一次,删除一次】

2025-01-15 17:56:55 992

原创 207. 课程表【 力扣(LeetCode) 】

在选修某些课程之前需要一些先修课程。先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi。你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1。否则,返回 false。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。【每个节点都会对应其他节点一次;每条边只遍历2次,存放入边关系一次,删除一次】

2025-01-15 17:51:02 990

原创 399. 除法求值【 力扣(LeetCode) 】

给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i]。如果问题中出现了给定的已知条件中没有出现的字符串,也需要用 -1.0 替代这个答案。【使用空间有:图的边,图的顶点(最坏2倍边的空间),递归深度(最坏遍历所有边),已搜索顶点集合(最坏搜索过所有顶点)】注意:输入总是有效的。注意:未在等式列表中出现的变量是未定义的,因此无法确定它们的答案。

2025-01-13 12:47:03 865

原创 130. 被围绕的区域【 力扣(LeetCode) 】

通过将输入矩阵 board 中的所有 ‘O’ 替换为 ‘X’ 来 捕获被围绕的区域。

2024-11-29 19:38:09 670

原创 133. 克隆图【 力扣(LeetCode) 】

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。

2024-11-29 19:37:41 1021

原创 200. 岛屿数量【 力扣(LeetCode) 】

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。

2024-11-27 15:13:41 1111

原创 230. 二叉搜索树中第 K 小的元素【 力扣(LeetCode) 】

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化算法?

2024-11-21 12:30:00 325 1

原创 98. 验证二叉搜索树【 力扣(LeetCode) 】

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

2024-11-21 12:28:53 767

原创 103. 二叉树的锯齿形层序遍历【 力扣(LeetCode) 】

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

2024-11-19 20:20:29 536

原创 530. 二叉搜索树的最小绝对差【 力扣(LeetCode) 】

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。

2024-11-19 20:20:02 357

原创 102. 二叉树的层序遍历【 力扣(LeetCode) 】

给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。

2024-11-17 17:56:55 582

原创 637. 二叉树的层平均值【 力扣(LeetCode) 】

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

2024-11-17 09:23:17 803

原创 199. 二叉树的右视图【 力扣(LeetCode) 】

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

2024-11-17 08:44:44 777

原创 236. 二叉树的最近公共祖先【 力扣(LeetCode) 】

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。

2024-11-16 17:26:08 621

原创 222. 完全二叉树的节点个数【 力扣(LeetCode) 】

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。进阶:遍历树来统计节点是一种时间复杂度为 O(n) 的简单解决方案。你可以设计一个更快的算法吗?给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。【计算树高其实可以用循环解决,这样空间复杂度就只剩。

2024-11-16 11:10:35 1093

原创 173. 二叉搜索树迭代器【 力扣(LeetCode) 】

指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。next() 和 hasNext() 操作均摊时间复杂度为 O(1) ,并使用 O(h) 内存。其中 h 是树的高度。你可以假设 next() 调用总是有效的,也就是说,当调用 next() 时,BST 的中序遍历中至少存在一个下一个数字。注意,指针初始化为一个不存在于 BST 中的数字,所以对 next() 的首次调用将返回 BST 中的最小元素。int next()将指针向右移动,然后返回指针处的数字。

2024-11-15 11:18:23 987

原创 124. 二叉树中的最大路径和【 力扣(LeetCode) 】

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。给你一个二叉树的根节点 root ,返回其 最大路径和。路径和 是路径中各节点值的总和。

2024-11-15 10:23:06 528

原创 【Linux】将 bin 目录添加到环境变量 LD_LIBRARY_PATH

在 Linux 中将 bin 目录添加到环境变量 LD_LIBRARY_PATH`

2024-11-05 13:11:20 629

原创 【项目小技巧】【C++】 Debug 日志输出 调用者的函数名,所在文件名和行号

【C++】 Debug 日志输出 调用者的函数名,所在文件名和行号

2024-11-01 20:50:04 345

原创 虚拟机 Ubuntu 扩容

虚拟机 Ubuntu 扩容方法,亲测有效!

2024-11-01 20:29:36 3782 3

原创 129. 求根节点到叶节点数字之和【 力扣(LeetCode) 】

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123。计算从根节点到叶节点生成的 所有数字之和。叶节点 是指没有子节点的节点。

2024-10-24 23:52:45 881

原创 117. 填充每个节点的下一个右侧节点指针 II【 力扣(LeetCode) 】

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。

2024-10-21 14:49:10 950

原创 114. 二叉树展开为链表【 力扣(LeetCode) 】

【 弹出一个元素,最多压入两个元素,而这样的情况只会发生在添加子树时,一但不添加子树,就只会弹出,所以最坏情况就是2倍的树高;如果树退化为线性,则。进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗?

2024-10-21 14:46:51 596

原创 106. 从中序与后序遍历序列构造二叉树【 力扣(LeetCode) 】

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。

2024-10-09 19:15:57 883

原创 105. 从前序与中序遍历序列构造二叉树【 力扣(LeetCode) 】

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。

2024-10-09 18:41:04 693

原创 在 window 系统下安装 Ubuntu (虚拟机)

本文详细介绍了如何在 window 下安装 Linux 系统,是采用虚拟机的方式,从下载到安装,再到配置,一条龙服务!!!

2024-10-06 21:20:54 5031

原创 101. 对称二叉树【 力扣(LeetCode) 】

给你一个二叉树的根节点 root , 检查它是否轴对称。进阶:你可以运用递归和迭代两种方法解决这个问题吗?

2024-10-06 16:10:37 998

原创 226. 翻转二叉树【 力扣(LeetCode) 】

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

2024-10-06 14:59:48 410

原创 Ubuntu 系统下,vscode + cmake + git 的配置

项目配置

2024-10-03 19:22:44 721

原创 86. 分隔链表【 力扣(LeetCode) 】

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。

2024-10-03 15:51:46 899

原创 146. LRU 缓存【 力扣(LeetCode) 】

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。

2024-10-03 15:50:46 2121

原创 100. 相同的树【 力扣(LeetCode) 】

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。【 m,n 为两棵树的结点数】【 h 为两棵树的树高】

2024-09-22 23:34:58 1072

原创 61. 旋转链表【 力扣(LeetCode) 】

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

2024-09-21 21:03:24 1208

原创 82. 删除排序链表中的重复元素 II【 力扣(LeetCode) 】

给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表。

2024-09-21 14:04:31 582

原创 104. 二叉树的最大深度【 力扣(LeetCode) 】

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。给定一个二叉树 root ,返回其最大深度。【h 是树高,递归最高深度就是树高】

2024-09-14 17:16:46 962 1

原创 19. 删除链表的倒数第 N 个结点【 力扣(LeetCode) 】

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?

2024-09-14 16:57:06 524 1

面向对象的分析设计-小组作业-超市配送系统

内容概要:本文档主要介绍了《超市配送系统》这一软件项目的详细设计及开发过程。文档涵盖系统的背景介绍、系统分析(OOA)、系统设计(OOD)和最终总结四个部分。针对国内超市配送领域存在的问题如功能分散、配送和送货行为脱节、服务质量低下和服务类型缺乏等,提出了该系统的解决方案。系统不仅对现有超市配送服务体系提供全面的功能覆盖,还包括详细的类图、用况图、状态图及其相应流程描述。各个模块功能描述详细,例如用户管理和商品管理的具体操作步骤,并附带有系统内部的数据流转逻辑。在开发过程中采用了多种面向对象技术进行分析与设计,如封装和抽象、继承和组合等,确保系统功能实现的有效性和高效运行。整个系统设计既考虑了用户体验便捷性的最大化,也保障了超市配送管理效率和质量的极大提高,有助于填补当前国内市场中高质量配送体系的空缺。 适合人群:本系统的分析、设计与实施方案适合对面向对象程序设计有一定基础,并关注电子商务和物流配送行业的高校师生、IT技术人员或创业者。 使用场景及目标:本系统主要用于现代都市环境中提供线上线下一体化的超市物品选购与快速精准投递服务,适用于各类规模的连锁零售商店、生鲜超市及其他快销品类电商平台。具体应用目标包括优化订单处理流程,增强配送效率和服务响应速度;提升用户的线上购物业务交互友好度;支持多角色(顾客、工作人员)的操作便捷性,并实现全周期商品流通追踪,为管理层决策提供有力依据。 其他说明:通过对《超市配送系统》的学习可以深入了解OOP概念的实际运用案例。此外,从这个实践中我们可以认识到良好沟通对于项目协作的重要性,它帮助解决了诸如用况图、类图等问题;同时强调在系统开发前应先充分调研用户需求并据此进行深入的需求建模和技术选型。尽管最终成果还有改进空间,但参与其中的学习经历将是不可多得的技术积累。感谢指导教师提供的学术指导和支持,也为参与项目的每个成员的专业成长奠定了基础。

2025-01-08

从 0 开始的 python 生活项目图片资源

从 0 开始的 python 生活项目图片资源

2024-04-19

新世纪 听力上册 1-15 音频.zip

内容概要:新世纪英语听力音频1-15单元 适用人群:练听力的学生 使用场景及目标:任何音频播放器即可 其他说明:配合原文食用更好

2024-01-07

FZU软件工程操作系统课程复习资料-整理

FZU软件工程操作系统课程复习资料-整理

2022-02-06

FZU软件工程web课程复习资料-整理

FZU软件工程web课程复习资料-整理

2022-02-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除