- 博客(89)
- 收藏
- 关注
原创 146. LRU缓存
双向链表中的每一个节点都是一个node,node下存储的是一个字典,我们可以通过存key,然后value是该key在双向链表中的node,这样的话就可以根据key快速定位到其在双向链表中的位置。首先判断要get的key是否添加过,如果添加过的话,则根据key的值定位到node的位置,然后输出node下的value值,随后需要将该node移动到head处。那实际上可以通过先把这个节点删除remove_node(),然后再将这个节点添加到头部add_to_head()。3. put(),添加函数。
2025-09-22 00:07:06
500
原创 97. 小明逛公园,Floyd 算法,127. 骑士的攻击,A * 算法
dijkstra, bellman_ford 是求,dijkstra无法解决负权边的问题, bellman_ford解决了负权边的问题,但二者都是基于单起点和单终点。而Floyd 算法旨在解决的最短路径问题,且。采用的是的思想,那涉及到动态规划就需要用到动态规划五部曲了。dp[i][j][k] 表示。k 是指取 区间[1,k] 中的一个节点作为中间节点;节点i 到 节点j 的最短路径中 一定是经过很多节点,那么这个集合用[1...k] 来表示。
2025-08-23 20:00:13
913
原创 95. 城市间货物运输 II, bellman_ford之判断负权回路;96. 城市间货物运输 III, bellman_ford之单源有限最短路
如下,负权回路就是指 有环,但环的总权值为负数。相反,正权回路就是指 有环,但环的总权值为正数,在正确回路中,可以通过判断松弛的判断条件来进行截止,但在负权回路中,由于每走一遍都会更新min_List,因此就会出现一直困在里面进行循环的情况。思路:理论上如果不是负权回路的话,那松弛n-1次一定可以找到最优解(不是负权回路的话,松弛次数>n-1时此时也不会再更新min_List数组了)。
2025-08-23 15:32:50
587
原创 94. 城市间货物运输 I, Bellman_ford 算法, Bellman_ford 队列优化算法
松弛是Bellman_ford 算法的实现基础。松弛检查是否存在一条通过某个中间节点的更短路径,如果存在,就更新当前的最短路径估计。其实就是更新min_List数组,来判断从起点出发到达下一个点是否有更短的路径。# 对边 (u, v) 进行松弛操作prev[v] = u # 可选:记录v是从u来的因为任何不包含负权环的最短路径最多包含 n-1条边。n-1次松弛足以保证找到所有可能的最短路径。即n个点的话,从起点出发到终点的最短路径只需要经过n-1条边。
2025-08-22 21:22:08
786
原创 117. 软件构建,拓扑排序,47. 参加科学大会,dijkstra算法
umap = defaultdict(list) 在这里umap使用了defaultdict,因此是一个字典,而里面是list,则说明了该字典的value是一个数组,掌握这种方式很有利于本题去找到入度为0的点指向的下一个节点。要熟悉掌握从collections packiage去使用队列deque,和字典defaultdict的方法。
2025-08-19 20:14:31
340
原创 53. 寻宝 —— prim算法, kruskal算法
还需要有个visited数组来标记哪些节点已经被纳入到生成树中。prim算法:最小生成树。
2025-08-17 18:37:20
172
原创 数学建模,机器决策人建模
时间序列分析是统计学和信号处理领域的一个重要分支,专门用于分析按时间顺序排列的数据点序列。参考统计学13——时间序列分析根据观察时间的不同,时间序列的时间可以是年份、季度、月份等。平稳序列就是观察值在某一固定水平上下波动,这种波动的程度可能不同但不存在明显的规律,也就可以看成是随机的。非平稳序列是包含趋势、季节性、周期性的序列,他可能只含有一种成分,也可能含有多种。于是时间序列的成分便可以分为随机性波动(I)、趋势(T)、季节性(S)、周期性(C)。
2025-05-21 22:12:50
1439
原创 对抗学习(AL),生成对抗网络(GAN),强化学习,RLHF
通过两个模型的相互对抗,使得生成模型(Generator)能够生成越来越逼真的数据,以欺骗判别模型。通俗的一句话进行总结就是道高一尺,魔高一丈。du贩想尽方法贩du,那缉du警在这个与du贩较量的过程中也不断提高了对处理各种贩du的手段。——在这个博弈中,一个参与者的收益是另一个参与者的损失,两者收益之和为零。在机器学习中,这通常意味着一个模型的优化目标是另一个模型的劣化。
2025-05-21 12:50:13
1663
原创 归一化函数 & 激活函数
softmax函数又称归一化指数函数,其作用是将一个 n 维的实值向量转换为概率分布。其数学公式如下:是输入向量的第 i 个元素是向量维度是自然对数的底数,是归一化因子,即所有类别原始得分指数化的总和。它确保了所有输出概率的总和为1。由于是e指数,并且是归一化操作,因此我们可以得出Softmax的特性。非负性。指数函数总是为正数。归一化。所有输出概率的总和为1。范围。每个概率都严格在[0,1]之间。
2025-05-18 10:39:30
1544
原创 有向存在负权图 -- Bellman_ford 算法,判断存在负权回路 -- Bellman_ford 算法,单源有限最短路 -- Bellman_ford 算法
dijkstra算法只能解决正权图,本质上还是贪心的思路,正权图用贪心思路可以得到全局最优,但如果存在负权的话,局部最优!通过贪心思路的话可以走到2,但如果在2继续采用贪心策略,那下一个走的应该是4而不是5,这样的话就是走到局部最优而不是全局最优。
2025-11-30 12:39:56
233
原创 有向正权图 —— dijkstra算法,求某点到某点的最短距离
与prim算法很像,关键在于prim算法解决的是无向正全图的情况,求的是一颗涵盖所有节点的最小生成树。prim算法求的是点加入到最小生成树,dijkstra算法求的是点加入到最短路径。而dijkstra算法求的是某点到某点的最短距离。
2025-11-29 20:16:01
215
原创 无向有权图的最小生成问题 —— prim算法, kruskal算法
prim算法是针对点的情况去构建最小生成树。CodeCode记录节点和边的情况,来得到这个图是怎么连接的。
2025-11-29 16:39:13
221
原创 字符串迁移 / 单词接龙
# 1. 如何连接两个字符串,第一个字符串 -> 第二个字符串(第二个字符串只在第一个字符串的基础上修改一个字母)## 2. 如何去得到从 beginStr 转换到 endStr 需要的最短转换序列中的字符串数量。### 这道题存在的两个问题。
2025-11-26 14:57:00
165
原创 31.下一个排列
已遍历得到的元素我不用通过一个candidate去进行保存,这些元素还是保存在数组中,我后续要用到的时候,只需要从swap_index的右边去进行查找来得到比大于nums[swap_index]下的最小数字。
2025-10-20 20:48:16
186
原创 287. 寻找重复数,169. 多数元素
由题目知道,数组的长度是n+1,而数字范围在[1,n],因此如果这些数字范围要构成一个没有重复数的数组,那其长度最长为 n, 即[1,n]的每个数字都不重复。而当前数组长度是n+1, 所以一定有重复的数字。实现方式有三种。
2025-10-18 17:19:01
877
原创 55.跳跃游戏, 45.跳跃游戏Ⅱ, 763.划分字母区间
第一道题解决的是能不能跳到最后一位的问题,第二道题解决的是跳最少多少次能到达的问题(题目确保了能到达最后一位)。
2025-10-10 16:30:29
225
原创 51. N皇后
而如果一维数组包含可变对象,如arr = [[1, 2], [3, 4]](包含列表可变对象),那么此时。self.result.append(list(matrix)) 是浅拷贝。这与一维数组有不同。在一维数组中,如果一维数组包含不可变对象,如 arr = [1, 2, 3, 4],那么此时。的效果类似于深拷贝,因为不可变对象不能被原地修改。仍然是浅拷贝,内层的可变对象仍然是共享的。但新列表中的每个子列表仍然是原始。创建了一个新的外层列表。
2025-10-05 17:12:10
319
原创 112. 路径总和,113. 路径总和Ⅱ, 437. 路径总和Ⅲ 124,二叉树的最大路径和
计算二叉树中某条路径等于target_sum的题型汇总。
2025-09-22 18:09:45
301
原创 并查集理论基础, 107. 寻找存在的路径
并查集常用来解决问题。大白话就是当我们需要的时候,我们就要想到用并查集。Q1: 判断为什么不用集合,或者用数组呢?元素分门别类,可不止一个集合,可能是很多集合,成百上千,那么要定义这么多个数组或集合吗?Q2: 并查集是的?假设现有三个元素A,B,C (分别是数字),现在三个元素A,B,C要放在同一个集合,其实就是将三个元素连通在一起,呢?只需要用一个一维数组来表示,即:father[A] = B,father[B] = C 这样就表述 A 与 B 与 C连通了(有向连通图)。
2025-08-16 15:32:56
1011
原创 110. 字符串接龙, 105. 有向图的完全联通, 106. 岛屿的周长
思路:找最短路径适合用广搜,广搜的探索范围比较广,能更快地找到最短路径。采用深搜的话,还需判断所获取的路径是否为最短。
2025-08-13 21:09:02
414
原创 101. 孤岛的总面积 102. 沉没孤岛 103. 水流问题 104.建造最大岛屿
孤岛和岛屿的区别在于。思路:先操作,构造一个bfs / dfs 来,后续再通过100. 求岛屿的面积做法去求孤岛的面积,累加就得到了孤岛的总面积。
2025-08-11 21:02:59
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅