自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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(Whh​ht−1​+Wxh​xt​+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

原创 门控循环单元(GRU)

在保留LSTM长程记忆能力的前提下,简化网络结构。

2025-04-22 16:04:17 999

原创 长短期记忆网络(LSTM)

解决传统RNN的梯度消失/爆炸问题,显式建模长期依赖关系:引入,通过三个门结构精确控制信息流动。

2025-04-22 15:50:25 1084

原创 循环神经网络(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要“查询”的向量集合,一般来自解码器当前步或同一序列BLqdkBLq​dk​Key用于“匹配”查询的向量集合,一般来自编码器输出或同一序列BLkdkBLk​dk​Value与 Key 一一对应的“值”向量集合,最终以加权和形式输出BLvdvBLv​dv​, 通常LkLvL_k=L_vLk​Lv​投影(Projection)

2025-04-22 13:27:37 1076

原创 特征选择与类不平衡处理

基于统计学方法或特征本身的分布特性独立于模型进行特征筛选,通过计算特征与目标变量的相关性或特征的发散性进行排序选择。原理:评估特征与标签的独立性,卡方值越大表示特征与标签相关性越强。χ2Σ理论频数实际频数−理论频数2​原理:移除方差接近0的特征(认为其区分度低)。

2025-04-21 23:15:47 708

原创 排序模型(Learning to Rank)

排序模型旨在解决。核心挑战:根据上下文特征,将最相关/最有价值的内容排列在更靠前的位置。

2025-04-21 22:55:10 1155

原创 树模型与集成学习(决策树核心算法: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∑K​x∈Ci​∑​∣∣x−μi​∣∣2其中μi​是第i个簇的质心。

2025-04-21 17:40:12 1022

原创 SVM(支持向量机)

将不同类别的样本分隔开。SVM的核心目标是找到一个。

2025-04-21 15:43:46 587

原创 朴素贝叶斯(Naive Bayes)

朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的简单概率分类器,其核心假设是在给定目标类的条件下,各特征相互独立(虽然这一假设在真实数据中往往不成立,但能显著简化计算)。该算法仅需为每个特征估计少量参数,训练和预测效率极高,具有良好的可扩展性,尤其适用于大规模高维数据场景。在文本分类、垃圾邮件识别、情感分析等领域,朴素贝叶斯凭借其高效性和可解释性被广泛采用。为防止因训练集中未出现的特征值导致的零概率问题,通常采用拉普拉斯平滑等技术对概率进行“加一”处理,提高模型稳定性。

2025-04-21 15:09:51 644

原创 逻辑回归(Logistic Regression)

逻辑回归本身是针对二分类问题的,但可以通过两种主要策略拓展到多分类场景。

2025-04-21 14:42:55 949

原创 【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】41. 缺失的最小的正整数的算法思路及python代码

首个正数对应的索引。

2025-02-24 11:22:13 747

原创 【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关注的人

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