自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 33.搜索旋转排序数组;153.寻找旋转排序数组中的最小值 4. 寻找两个正序数组的中位数,295.数据流的中位数

Code。

2025-10-05 20:56:36 216

原创 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

原创 二叉树的直径,二叉树中的最大路径和

这两道题比较类似,可以拿出来分析下相同点。

2025-10-24 20:40:13 124

原创 矩阵题型hot100

Code。

2025-10-23 16:41:43 351

原创 41.缺失的第一个正数

【代码】41.缺失的第一个正数。

2025-10-23 10:42:28 192

原创 异位词题型

Code。

2025-10-22 18:13:46 141

原创 31.下一个排列

已遍历得到的元素我不用通过一个candidate去进行保存,这些元素还是保存在数组中,我后续要用到的时候,只需要从swap_index的右边去进行查找来得到比大于nums[swap_index]下的最小数字。

2025-10-20 20:48:16 186

原创 75.颜色分类

【代码】75.颜色分类。

2025-10-20 18:10:11 186

原创 32. 最长有效括号

时间复杂度为:max(O(N), O(N logN)) = O(N logN)Code进一步优化的实现方式Code。

2025-10-20 00:33:13 232

原创 287. 寻找重复数,169. 多数元素

由题目知道,数组的长度是n+1,而数字范围在[1,n],因此如果这些数字范围要构成一个没有重复数的数组,那其长度最长为 n, 即[1,n]的每个数字都不重复。而当前数组长度是n+1, 所以一定有重复的数字。实现方式有三种。

2025-10-18 17:19:01 877

原创 leetcode 3. 无重复字符的最长子串

思路Code。

2025-10-12 21:20:40 212

原创 01背包的二维dp和一维dp,416. 分割等和子集,完全背包的二维dp和一维dp,完全背包的求组合和求排序问题,多重背包

Code。

2025-10-11 21:05:21 399

原创 343. 整数拆分, 96.不同的二叉搜索树

Code。

2025-10-11 16:12:50 447

原创 55.跳跃游戏, 45.跳跃游戏Ⅱ, 763.划分字母区间

第一道题解决的是能不能跳到最后一位的问题,第二道题解决的是跳最少多少次能到达的问题(题目确保了能到达最后一位)。

2025-10-10 16:30:29 225

原创 20. 有效的括号,394.字符串解码,739.每日温度,84. 柱状图中最大的矩形

Code。

2025-10-09 23:12:17 763

原创 51. N皇后

而如果一维数组包含可变对象,如arr = [[1, 2], [3, 4]](包含列表可变对象),那么此时。self.result.append(list(matrix)) 是浅拷贝。这与一维数组有不同。在一维数组中,如果一维数组包含不可变对象,如 arr = [1, 2, 3, 4],那么此时。的效果类似于深拷贝,因为不可变对象不能被原地修改。仍然是浅拷贝,内层的可变对象仍然是共享的。但新列表中的每个子列表仍然是原始。创建了一个新的外层列表。

2025-10-05 17:12:10 319

原创 79.单词搜索

方法一:图论 + 深搜(回溯)

2025-10-05 01:07:38 106

原创 994. 腐烂的橘子,207. 课程表, 208.实现 Trie (前缀树)

手撕Code。

2025-09-30 23:02:50 275

原创 排序算法汇总,堆排序,归并排序,冒泡排序,插入排序

Code实现(使用python自带的堆进行实现)

2025-09-30 00:05:27 1191

原创 112. 路径总和,113. 路径总和Ⅱ, 437. 路径总和Ⅲ 124,二叉树的最大路径和

计算二叉树中某条路径等于target_sum的题型汇总。

2025-09-22 18:09:45 301

原创 174. 地下城游戏

【代码】174. 地下城游戏。

2025-09-21 00:13:43 161

原创 534 二叉树的直径,98. 验证二叉搜索树

code。

2025-09-19 20:50:36 139

原创 148.排序链表,23.合并K个升序链表

链表中使用来实现分治的方法。实现方法都挺巧妙的,记录一下。

2025-09-16 15:12:57 193

原创 108. 冗余连接, 109. 冗余连接 II

思路:关键是如何将判断冗余边的逻辑转换为并查集的判断逻辑。

2025-08-16 19:54:18 482

原创 并查集理论基础, 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

原创 深度搜索dfs, 98. 所有可达路径, 广度优先搜索bfs, 99.岛屿数量, 100. 岛屿的最大面积

【代码】98. 所有可达路径。

2025-08-07 20:59:25 231

空空如也

空空如也

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

TA关注的人

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