- 博客(86)
- 收藏
- 关注
原创 【LeetCode 热题100】 15. 三数之和 的算法思路及python代码
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。
2025-04-24 17:03:24
369
原创 LSTM如何解决梯度消失问题
在标准RNN中,隐藏状态更新公式为:ht=tanh(Whhht−1+Wxhxt+bh)h_t = \tanh(W_{hh}h_{t-1} + W_{xh}x_t + b_h)ht=tanh(Whhht−1+Wxhxt+bh)梯度计算通过链式法则展开:∂ht∂ht−1=WhhT⋅diag(tanh′(...))\frac{\partial h_t}{\partial h_{t-1}} = W_{hh}^T \cdot \text{diag}(\tanh'(...))∂ht−1∂
2025-04-22 16:07:48
934
原创 循环神经网络(RNN)
定义权重参数# x_seq形状: (seq_length, batch_size, input_size)h = torch.zeros(batch_size, self.hidden_size) # 初始隐藏状态for x_t in x_seq: # 按时间步迭代# 更新隐藏状态self.b_h# 计算输出。
2025-04-22 15:43:23
645
原创 协同过滤(Collaborative Filtering)
在MF基础上引入隐式反馈(如用户浏览、点击行为),增强用户隐向量的表达能力。将用户-物品评分矩阵分解为低维用户隐向量和物品隐向量的乘积,捕捉潜在特征。通过计算物品之间的相似度,基于用户历史喜欢的物品预测其对新物品的兴趣。通过计算用户之间的相似度,利用相似用户的评分预测目标用户的兴趣。
2025-04-22 15:05:10
2321
原创 多头注意力(Multi‑Head Attention)
个注意力头(heads),每个头在不同子空间中学习不同的表示。多头注意力基于对缩放点乘注意力的并行化扩展,引入了。设输入序列表示为矩阵。
2025-04-22 14:00:39
1007
原创 注意力机制(Attention Mechanism)
组件作用形状(Batch, Seq, Dim)Query要“查询”的向量集合,一般来自解码器当前步或同一序列BLqdkBLqdkKey用于“匹配”查询的向量集合,一般来自编码器输出或同一序列BLkdkBLkdkValue与 Key 一一对应的“值”向量集合,最终以加权和形式输出BLvdvBLvdv, 通常LkLvL_k=L_vLkLv投影(Projection)
2025-04-22 13:27:37
1076
原创 特征选择与类不平衡处理
基于统计学方法或特征本身的分布特性独立于模型进行特征筛选,通过计算特征与目标变量的相关性或特征的发散性进行排序选择。原理:评估特征与标签的独立性,卡方值越大表示特征与标签相关性越强。χ2Σ理论频数实际频数−理论频数2原理:移除方差接近0的特征(认为其区分度低)。
2025-04-21 23:15:47
708
原创 树模型与集成学习(决策树核心算法:ID3/C4.5/CART、随机森林、GBDT/XGBoost)
ID3(Iterative Dichotomiser 3)是最早的决策树算法之一,由Ross Quinlan于1975年提出。其核心思想是通过选择最优划分特征,构建多叉树结构,递归分割数据直至纯度达标。HD−k1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣其中Ck为第k类样本集合,K为类别数。gDAHD−v1∑V∣D∣∣Dv∣HDv其中Dv。
2025-04-21 20:34:58
1158
原创 聚类算法(K-means、DBSCAN)
K-means 是一种基于的划分式聚类算法,其核心思想是通过迭代优化将数据划分为 K 个簇。SSEi1∑Kx∈Ci∑∣∣x−μi∣∣2其中μi是第i个簇的质心。
2025-04-21 17:40:12
1022
原创 朴素贝叶斯(Naive Bayes)
朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的简单概率分类器,其核心假设是在给定目标类的条件下,各特征相互独立(虽然这一假设在真实数据中往往不成立,但能显著简化计算)。该算法仅需为每个特征估计少量参数,训练和预测效率极高,具有良好的可扩展性,尤其适用于大规模高维数据场景。在文本分类、垃圾邮件识别、情感分析等领域,朴素贝叶斯凭借其高效性和可解释性被广泛采用。为防止因训练集中未出现的特征值导致的零概率问题,通常采用拉普拉斯平滑等技术对概率进行“加一”处理,提高模型稳定性。
2025-04-21 15:09:51
644
原创 【LeetCode 热题100】 763. 划分字母区间 的算法思路及python代码
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串 “ababcc” 能够被分为 [“abab”, “cc”],但类似 [“aba”, “bcc”] 或 [“ab”, “ab”, “cc”] 的划分是非法的。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。示例 2:算法思路该代码通过 贪心算法 解决字符串划分问题,核心思想是利用每个字符的最后出现位置确定片段的边界,确保每个字符仅
2025-04-03 20:24:55
894
原创 【LeetCode 热题100】 45. 跳跃游戏 II 的算法思路及python代码
给定一个长度为 n 的 0 索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引 i 向后跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意返回到达的最小跳跃次数。生成的测试用例可以到达。
2025-04-03 15:29:45
849
原创 【LeetCode 热题100】 295. 数据流的中位数 的算法思路及python代码
中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。
2025-04-03 14:22:40
1097
原创 【LeetCode 热题100】 347. 前 K 个高频元素 的算法思路及python代码
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
2025-04-02 17:30:47
386
原创 【LeetCode 热题100】 84. 柱状图中最大的矩形 的算法思路及python代码
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。
2025-04-02 16:27:14
485
原创 【LeetCode 热题100】 739. 每日温度 的算法思路及python代码
给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
2025-04-02 15:43:00
358
原创 【LeetCode 热题100】 394. 字符串解码的算法思路及python代码
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:,表示其中方括号内部的正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。
2025-03-25 22:46:33
396
原创 【LeetCode 热题100】 4. 寻找两个正序数组的中位数的算法思路及python代码
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的。算法的时间复杂度应该为Ologmn))。
2025-03-25 19:23:10
1079
原创 【LeetCode 热题100】 51. N 皇后 缓存的算法思路及python代码
按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。
2025-03-24 16:19:07
1094
原创 我真的不想写屎山代码了 /(ㄒoㄒ)/~~
以leetcode里79. 单词搜索为例,以下是我的屎山代码。简直就是一滩狗屎,改bug都不知道从何下手,算法逻辑就是那个算法逻辑,写出来就是一坨狗屎,逻辑漏洞东补一点西补一点,越拉越多。因此痛定思痛,针对这个例子分析如何避免写屎山代码。这三重认知维度。
2025-03-23 14:23:23
453
原创 【LeetCode 热题100】 22. 括号生成 的算法思路及python代码
数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。
2025-03-22 23:59:10
731
原创 回溯问题的思考与解决范式
回溯算法是解决**组合优化、排列组合、搜索问题**的核心方法,尤其适合需要**穷举所有可能性**的问题。其本质是通过**递归的逐层决策**和**路径撤销**实现状态遍历。以下是回溯问题的系统化解决范式:
2025-03-22 18:28:28
509
原创 【LeetCode 热题100】 124. 二叉树中的最大路径和的算法思路及python代码
二叉树中的被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点root,返回其 最大路径和。
2025-03-20 16:52:50
1079
原创 【LeetCode 热题100】 236. 二叉树的最近公共祖先 的算法思路及python代码
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。
2025-03-20 16:20:06
673
原创 【LeetCode 热题100】 437. 路径总和 III 的算法思路及python代码
给定一个二叉树的根节点root,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
2025-03-20 15:21:49
602
原创 【LeetCode 热题100】 142. 环形链表 II 的算法思路及python代码
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。如果pos是 -1,则在该链表中没有环。pos不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。
2025-03-20 11:25:17
618
原创 【LeetCode 热题100】 234. 回文链表的算法思路及python代码
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false。
2025-03-20 11:00:22
673
原创 【LeetCode 热题100】 146. LRU 缓存的算法思路及python代码
请你设计并实现一个满足缓存 约束的数据结构。实现LRUCachecapacitykeykeyvaluekey-valuecapacity函数get和put必须以O1的平均时间复杂度运行。
2025-03-19 21:17:38
1068
原创 【LeetCode 热题100】 23. 合并 K 个升序链表的算法思路及python代码
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。
2025-03-19 19:59:00
761
原创 【LeetCode 热题100】 240. 搜索二维矩阵 II的算法思路及python代码
编写一个高效的算法来搜索m×n矩阵matrix中的一个目标值target。
2025-02-25 14:22:16
1303
原创 【LeetCode 热题100】48. 旋转图像以及旋转任意角度的算法思路及python代码
给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
2025-02-24 20:26:06
1029
原创 【LeetCode 热题100】 238. 除自身以外数组的乘积的算法思路及python代码
给你一个整数数组nums,返回 数组answer,其中answeri等于nums中除numsi之外其余各元素的乘积。不要使用除法,且在 O(n) 时间复杂度内完成此题。
2025-02-23 16:36:14
645
原创 动态规划问题的思考与解决范式
目标:将问题抽象为一个状态表达式,通常用dp[i][j]表示子问题的解。关键点:状态需能唯一描述子问题的特征(如位置、剩余容量、已选元素等)。维度由问题复杂度决定(一维、二维或更高)。示例:dp[i][w]表示前i个物品装入容量www的背包的最大价值。dp[i]表示以第i个元素结尾的最长递增子序列长度。dp[i]表示以nums[i]结尾的最长递增子序列长度。动态规划的核心在于将复杂问题分解为重叠子问题,并通过递推和存储避免重复计算。识别问题特征(重叠子问题、最优子结构)
2025-02-22 19:21:30
1204
原创 【LeetCode 热题100】53. 最大子数组和的算法思路及python代码
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。
2025-02-22 16:41:19
797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人