自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【leetcode】数组刷题总结(二)滑动窗口

滑动窗口算法技巧主要用来解决子数组问题,比如让你寻找符合某个条件的最长/最短子数组或者子串。对于某些题目,并不需要穷举所有子串,就能找到题目想要的答案。滑动窗口就是这种场景下的一套算法模板,帮你对穷举过程进行剪枝优化,将求解子串复杂度由O(N^2)->O(N)

2025-02-11 21:33:48 774

原创 概率论、组合数学知识点汇总

表示将n个。

2025-02-11 21:33:20 1499

原创 【leetcode】动态规划刷题总结(六)-划分问题

一般定义dp[i]表示nums[:i + 1]能否划分,然后枚举最后一个子数组的左端点,得到nums[:i + 1]能否划分。

2024-11-09 09:56:42 555

原创 Batch Normalization原理与代码实现

Batch Normalization(批量归一化)是一种用于加速深度神经网络训练并提高其稳定性的技术。它通过在对数据进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程并提高模型性能。对于每个batch数据,计算其均值和方差使用计算得到的均值和方差对每个数据点进行归一化,使其均值为0、方差为1,,其中是一个小常数,防止除零错误为了保留模型的表达能力,对归一化后的数据进行缩放和平移操作,其中和是可学习的参数,分别用于缩放和平移。

2024-11-09 09:56:17 928

原创 深度学习注意力机制类型总结&pytorch实现代码

在深度学习中,注意力机制(Attention Mechanism)已经成为一种重要的技术。意力机制通过动态调整模型的注意力权重,来突出重要信息,忽略不重要的信息,大大提高了模型的效果注意力机制的基本思想是:在处理输入序列时,模型可以根据当前的上下文动态地选择关注哪些部分。具体来说,注意力机制通过计算查询向量(Query)、键向量(Key)之间的相似度来确定注意力权重,然后对值向量(Value)进行加权求和,得到最终的输出。(当K=V时,就是普通的注意力机制)

2024-11-05 09:03:52 1722 1

原创 逻辑回归原理、梯度下降推导及代码实现

逻辑回归(Logistic Regression)是一种广泛应用于二分类问题(也可扩展到多分类)的线性模型。

2024-11-05 09:03:18 1112

原创 【leetcode】动态规划刷题总结(七)-区间问题

区间DP问题一般从数组的左右两端不断缩短,求解关于某段下标区间的最优值,dp[i][j]一般定义为下标区间[i,j]的最优值。

2024-10-30 22:42:29 393 1

原创 K-means算法原理、手撕K-means代码

K-means算法步骤。

2024-10-26 10:00:00 323

原创 AUC完全总结:定义、手撕计算代码、优缺点

AUC(Area Under ROC Curve),是ROC曲线下的面积。如果ROC面积越大,说明曲线越往左上角靠过去。那么对于任意截断点,(FPR,TPR)坐标点越往左上角(0,1)靠,说明FPR较小趋于0(在所有真实负样本中,基本没有预测为正的样本),TRP较大趋于1(在所有真实正样本中,基本全都是预测为正的样本)。并且上述是对于任意截断点来说的,很明显,那就是分类器对正样本的打分基本要大于负样本的打分。AUC越大,说明分类器越可能把正样本排在前面,衡量的是一种排序的性能。

2024-10-23 09:30:41 1115 1

原创 【leetcode】排序问题总结

把待排序数组视为数组表示的完全二叉树,然后自底向上不断调整,使其成为一个大顶堆(升序排序)/小顶堆(降序排序),之后可以通过不断弹出堆顶元素进行排序建堆过程时间复杂度为O(n),堆排序过程时间复杂度为O(nlogn)

2024-08-02 23:11:48 367 1

原创 【leetcode】二叉树刷题总结(三)二叉搜索树问题

利用二叉搜索树特性,将搜索复杂度降为logn。

2024-07-28 17:35:08 441 1

原创 【leetcode】二叉树刷题总结(二)二叉树构造问题、最近公共祖先问题

先找到根节点,然后找到并递归构造左右子树即可:可以通过前序遍历结果找到根节点,然后根据中序遍历结果确定左右子树。通过前序后序遍历结果无法确定唯一的原始二叉树。前序遍历,迭代法实现。

2024-07-24 20:51:38 381

原创 【leetcode】栈/队列/单调栈/单调队列刷题总结

需要两个栈(一个,一个)来实现队列操作在push数据的时候,只要数据放进输入栈就好。但在pop的时候,输出栈如果为空,就把输入栈数据全部导入进来,再弹出数据;如果输出栈不为空,则直接弹出数据就可以。

2024-07-09 23:04:26 415

原创 【leetcode】哈希表刷题总结

和三数之和思路相同,四数之和的双指针解法是两层for循环nums[i] + nums[j]为确定值,然后循环内有left和right下标作为双指针,找出nums[i] + nums[j] + nums[left] + nums[right] == target的情况,四数之和的时间复杂度是O(n^3)这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况,所以相对于四数之和简单了不少,用哈希表就可以解决。

2024-07-07 11:15:24 636

原创 【leetcode】字符串刷题总结

模拟反转过程就可以。

2024-07-05 19:15:51 749

原创 【leetcode】数组刷题总结(一)二分查找、双指针、前缀和、差分、花式遍历

LeetCode167题 两数之和II-输入有序数组二分查找变体-查找目标为一对数LeetCode35题 搜索插入位置二分查找变体-查找目标的插入位置LeetCode34题 在排序数组中查找元素的第一个和最后一个位置查找有序重复数组的左右边界问题,与二分查找基础题相比,主要差异在对nums[mid]==target时的情况处理 LeetCode69题 x的平方根本质是在找符合r*r

2024-07-02 12:32:29 636

原创 【leetcode】链表刷题总结

链表的类型:单链表、双链表、循环链表链表操作中一个重要的技巧是链表操作当前节点必须要找前一个节点才能操作,这就造成了头结点的尴尬,因为头结点没有前一个节点了,每次头结点都要单独处理,使用虚拟头结点可以简化代码。

2024-06-28 09:19:10 428 1

原创 【leetcode】数学刷题总结

如果一个人拿的时候只剩4颗石子,那么无论他怎么拿,总会剩下1~3颗石子,对手都能赢。

2024-06-23 16:59:51 1267

原创 【leetcode】图论刷题总结

深度优先搜索(dfs)是可一个方向去搜,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯),所以用递归的方式来实现是最方便的。

2024-06-09 21:23:53 543

原创 【leetcode】优先队列/字典树刷题总结

基础题# 建堆# 不断粉碎堆顶两个石头重量,并将剩余石头重量重新加入堆中。

2024-05-23 22:34:56 320

原创 【leetcode】动态规划刷题总结(四)-子序列问题

t[i-1]时,dp[i][j]=dp[i-1][j],即只删除t中的元素,不需要删除s中的元素比较。所以还可以压缩为1维DP数组。所以可维护一个数组d,d[i]表示长度为i + 1的最长递增子序列的末尾元素的最小值,不断更新d,d的最终长度就是最长自增子序列长度。如果要使递增子序列尽可能的长,需要让序列上升得尽可能慢,因此希望每次在递增子序列最后加上的那个数尽可能的小。相对“最长递增子序列”,本题简单在,每次只需要比较和前一个元素的大小。由于递推公式是从上到下、从左到右,所以无法压缩为1维DP数组。

2024-05-19 23:18:47 281

原创 【leetcode】动态规划刷题总结(五)-状态机问题

能买无数次,与“买卖股票的最佳时机II”的区别:由于有手续费,所以卖出股票时需要添加手续费。能买无数次,相对只能买1次,主要变化在dp[0]的递推公式。只能买k次,需要记录2*k个状态。

2024-05-18 12:10:56 238

原创 【leetcode】动态规划刷题总结(二)-网格问题

将环形问题转化为线性问题,分别计算不考虑首尾元素的情况。

2024-05-16 23:38:49 210

原创 【leetcode】动态规划刷题总结(三)-背包问题

有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。01背包是每件物品只能用一次;完全背包是每件物品数量无限。求解目标是将哪些物品装入背包里物品价值总和最大。

2024-05-12 21:14:22 386

原创 【leetcode】动态规划刷题总结(一)-基础题

动态规划 + 单调队列解法:可以将dp数组设置为一个单调队列,只保留之前k个位置有机会成为最大的分数,这样队首元素就代表着前k个位置的最大分数。降低时间复杂度O(k*n)->O(n)# 维护一个单调队列,降低时间复杂度O(k*n)->O(n)# 此时nums[i]代表到达索引i的最大得分# 到达第k步时,开始弹出符合条件的元素# 将nums[i]加入单调队列。

2024-05-11 12:18:41 313

原创 【leetcode】贪心刷题总结

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。贪心算法唯一的难点就是如何通过局部最优,推出整体最优。如果手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心。如果不可行,可能需要动态规划。将局部最优解堆叠成全局最优解。将问题分解为若干个子问题。求解每一个子问题的最优解。

2024-05-02 20:10:51 337 2

原创 【leetcode】回溯刷题总结

有递归就有回溯,递归与回溯相辅相成。回溯搜索法是纯暴力搜索算法。一般的回溯问题都可以抽象为树结构,树的深度为递归次数,树的宽度为候选集合大小。

2024-04-27 16:40:10 254

原创 【leetcode】二叉树刷题总结(一)分解思路、遍历思路

【代码】【leetcode】二叉树刷题总结。

2024-04-20 16:39:31 303

原创 【leetcode】二叉树分类、遍历方式、解题思路总结

二叉树分类二叉树分类满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。即深度为k,有2^k-1个节点的二叉树。完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;

2024-04-17 22:39:42 289

原创 pytorch LSTM处理变长序列代码

序列数据一般长度是不固定的,所以在训练LSTM这类模型时,一个batch内的数据需要padding到相同的长度,并在训练中忽略相关影响。

2024-03-23 15:40:31 487 1

空空如也

空空如也

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

TA关注的人

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