自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leecode

leecode42,接雨水。动态规划or单调中栈or双指针。leecode143,重排链表,二叉树的遍历94 144 145。leecode11,盛水,

2023-06-14 20:18:28 366

原创 leecode

leecode258,各位相加,数根,找数学规律。leecode202,快乐数,

2023-06-12 20:17:50 602

原创 leecode

leecod17,电话号码的组合,leecode20,有效的括号,leecode22,括号生成,

2023-06-10 09:49:09 758

原创 leecode

leecode637,二叉树的层平均值,bfs记录每一层然后取平均。leecode993,二叉树的堂兄弟节点,bfs,leecode429,N叉树的层序遍历,

2023-06-08 23:08:07 430

原创 leecode

leecode148 排序链表,归并排序,自底向上的空间复杂度为O(1),注意每次归并时提取两个链表的头部,保存上一次合并的尾部和下一次合并的头部,以及将对应链表之间解开,自底向上为什么时O(1),再看自顶向下。# 合并后 l1 和 l2 最多只有一个还未被合并完,我们直接将链表末尾指向未合并完的链表即可。leecode88,合并两个有序数组,要求空间复杂度为O(1),# 将第二个链表和后面解开。# 本次要合并的两个头部。# 下一对合并的头部。# 上一对合并的尾部。leecode21,合并有序链表,

2023-06-07 20:09:32 456

原创 leecode

合并后 l1 和 l2 最多只有一个还未被合并完,我们直接将链表末尾指向未合并完的链表即可。leecode88,合并两个有序数组,要求空间复杂度为O(1),leecode148 排序链表,归并排序。leecode23,合并k个升序链表。leecode21,合并有序链表,

2023-06-06 19:46:30 651

原创 leecode

cur.next = pre # 每次循环只修改一个 next,方便大家理解。for _ in range(k): # 同 92 题。# pre是反转后的头部,cur是下一次反转前的头部。#p0的next是下一个没反转前的头部,也是反转后的尾部。n += 1 # 统计节点个数。#翻转后的部分的尾部接上原链表。#原链表接上翻转后的部分的头部。leecode25,n个一组反转链表,

2023-06-05 20:18:36 464

原创 leecode

leecode54,螺旋数组,

2023-06-02 21:20:34 504

原创 leecode

leecode2470,最小公倍数为k的子数组,# 求三个数的最大公因数和最小公倍数。leecode1201,丑数,gcd,lcm,注意。

2023-06-01 20:31:39 540

原创 leecode

leecode567,字符串的排列,leecode31,下一个排列。leecode60,排列序列,

2023-05-31 20:15:58 588

原创 leecode

leecode724,寻找数组的中心下表(左右元素和相等),,可以优化空间,但是要特别注意优化空间后转移方程的书写,leecode167,两数之和(输入有序数组),leecode1143,最长公共子序列,leecode560,和为k的子数组,,注意前缀和以及哈希表的构建更新顺序。(空间换时间),注意哈希表的更新顺序。leecode128,最长连续序列,offer93,最长斐波那契数列,offer1027,最长等差数列,leecode15,三数字之和,leecode1,两数字之和,

2023-05-30 20:10:35 434

原创 leecode

leecode128,最长连续子序列,哈希表枚举,要注意技巧,,可以降低时间复杂度。

2023-05-29 21:00:12 600

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]如果一个节点的左子节点。具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。

2023-05-26 20:25:27 592

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]如果一个节点的左子节点。具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。

2023-05-24 20:05:13 835

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]如果一个节点的左子节点。具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。

2023-05-23 22:32:13 395

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]如果一个节点的左子节点。具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。

2023-05-22 19:50:15 394

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。点,也是该节点的前驱节点。

2023-05-19 19:38:22 533

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]具体做法是,对于当前节点,如果其左子节点不为空,则在其左子树中找到最右边的节点,作为前驱节点,将当前节点的右子节点赋给前驱节点的右子节。点,也是该节点的前驱节点。

2023-05-18 19:17:06 342

原创 leecode222

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。这样,当枚举到长度为n的序列时,可以把所有dp[n][j]累加起来,得到所有长度为j的单调递增子序列的个数。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]# 不能丢,否则容易超时,特别是没有走上面两个循环的时候。

2023-05-15 20:41:11 418

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。这样,当枚举到长度为n的序列时,可以把所有dp[n][j]累加起来,得到所有长度为j的单调递增子序列的个数。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]# 不能丢,否则容易超时,特别是没有走上面两个循环的时候。

2023-05-12 20:42:39 659

原创 system

啊实打实的

2023-05-10 21:18:31 33

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。这样,当枚举到长度为n的序列时,可以把所有dp[n][j]累加起来,得到所有长度为j的单调递增子序列的个数。# dp[i][j-1]是在s1[i-1]后添加一个字符s1[j-1],dp[i-1][j]是删除s1[i-1],dp[i-1][j-1]是修改s1[i-1]为s2[j-1]# 不能丢,否则容易超时,特别是没有走上面两个循环的时候。

2023-05-10 21:08:12 608

原创 leecode

这个方程的含义是,以第i个数结尾,长度为j的单调递增子序列的个数,等于以前面任意一个比它小的数k结尾,长度为j-1的单调递增子序列的个数,再加上自己构成的长度为2的序列。这样,当枚举到长度为n的序列时,可以把所有dp[n][j]累加起来,得到所有长度为j的单调递增子序列的个数。所以,我们可以从长度为2的序列开始,一直枚举到长度为n的序列,对于每个长度,统计可以取出的单调序列的个数即可。具体实现可以用一个二维数组dp来辅助计算,其中dp[i][j]表示以第i个数结尾,长度为j的单调递增子序列的个数。

2023-05-09 20:07:15 465

原创 leecode

dp0 dp1分别代表买了股票和卖了股票的收入,,dp2存储t-2时刻的卖出股票的收入。# 任意交易,连个变量,类似于k次交易的板子,只不过对第一次交易不用特殊处理,因为。# 不能丢,否则容易超时,特别是没有走上面两个循环的时候。# 这个板子用两个变量存储了多次交易的收益,没有数组就不存在溢出的风险。# 注意临界值的处理 j == 0(第一次交易),用了数组来存储,# 任意交易且包含冷冻期,套用任意交易的板子。# 交易一次,套用交易k次的板子。# k次交易的收益,存在溢出风险。# 套用k次交易的板子。

2023-05-08 19:52:53 783

原创 lee解题分享

dp + dfs(dp的顺序)# 每次找满足条件的外最大的。# 建立双向链表以及哈希表。meituan415 贪心。meituan415 模拟。# 前缀和,从1开始。

2023-04-28 19:53:58 875

原创 刷题ing leecode

le e co

2023-04-27 19:41:16 353

原创 决策树相关知识点

信息增益率 = 信息增益/属性熵(计算公式和信息熵一致),对取值少的属性有偏好(导致分支变少,容易欠拟合),为了解决这个问题,c4.5先将信息增益小于平均水平的属性丢弃掉(偏好属性取值较多的),然后再选择信息增益率最大的(偏好属性取值较少的),这样的话两方面都有了兼顾。lightgbm和xgboost都是将有缺失值的样本分配给增益最大的节点,测试时,如果在训练集中有相同的分割,则和训练集一样,如果没有,那么默认将有缺失值的样本分割左节点。为什么要剪枝,没剪枝的树很容易过拟合,泛化性能很差。

2023-04-18 21:22:40 413

原创 由联合概率分布求协方差的步骤

由联合概率分布求协方差的步骤。

2023-04-15 15:37:00 1503

原创 梯度的看法

求解损失函数对参数的偏导数时,在反向传播,梯度的连续乘法(x中间值可能特别大或特别小,激活函数导数可能特别大、已经更新过的参数w也可能特别大或特别小(初始参数太大了))中总是遇上很大的绝对值(很小的绝对值),部分参数的梯度因为乘了很多较大(较小)的数而变得非常大(小)3 ln(虽然用了leakyrelu,缓解了梯度消失的问题,但是求注意力系数的时候,softmax的输入过大时,偏导数也会很小,导致梯度消失的问题)transformer用到的防治梯度消失和梯度爆炸的方法。2 调节学习率(消失增大,爆炸减少)

2023-04-15 10:44:50 717

原创 rnn、lstm、cnn、transformer

卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少。缺点:1单个卷积层难以捕获全局信息(改善方法有使用更大的卷积核、使用池化层、使用多层卷积层、空洞卷积tcn用了因果空洞卷积来处理时间序列问题。rnn容易出现梯度消失的问题,因为经过反向传播后,较远时间步的梯度趋近于0,导致模型难以学到远距离的信息。优点:通过门控机制,来记忆一些长期信息,相应也就保留了更多的梯度,缓解rnn梯度消失的问题。rnn不能并行的原因:不同时间步的隐藏层之间有关联。2 rnn中的反向传播。

2023-04-15 09:59:25 1278

原创 神经网络权值初始化

并且第一个batch只有最后一层参数更新,第二个batch才有倒数第二层参数更新(倒数第二层的参数依赖于loss的导数、激活函数的导数、正向传播上一层的输入和以及反向传播的上一层的w更新前的值),直到若干batch后,所有层的权重都开始更新,这个时候权重值才会出现差异,但是同一层中,每个神经元的参数列表都和其他神经元一模一样,相当于每一层只有一个神经元。暗示神经网络不行,因为参数的梯度依赖于正向传播上一层激活函数的输出,它的输入为0,输出一致。1 权重初始化为0,偏置初始化为0。

2023-04-15 09:57:03 469

原创 反向传播算法

由链式求导法则得到的连乘式子可能包括loss的导数、激活函数的导数、正向传播上一层的输入和以及反向传播的上一层的w更新前的值。由链式求导法则得到的连乘式子可能包括loss的导数、激活函数的导数、1和以及反向传播的上一层的w更新前的值。反向传播算法在计算过程中后面的计算可以复用前面的计算结果。

2023-04-15 09:54:49 33

原创 交叉熵损失函数优点

损失函数导数和sigmoid激活函数的导数相乘后为sigmoid(s)-y,因此反向传播时,权重的梯度受到误差的控制,当误差很大时,梯度就大,误差小的时候,梯度就小,这样就方便loss收敛;但是用l2 loss的话,偏导数就会很小,导致梯度消失的问题。

2023-04-15 09:54:10 193

原创 偏置的重要性

没有偏置的话,神经网络失去很多灵活性,函数过原点,对一些问题无法进行划分。举例y=x-1上可以划分一些点,但是没有偏置不行。

2023-04-15 09:53:30 47

原创 sumblime下载json美化插件

Mac下Sublime Text格式化JSON_sublime text 格式化json_慕城南风的博客-CSDN博客

2023-03-30 09:38:40 158

原创 linux软链接

Linux软链接的使用_linux建立软连接的使用_Adenialzz的博客-CSDN博客

2023-03-30 09:37:24 31

原创 python报错机制

tryexcept。

2023-03-30 09:37:13 39

原创 查看pid对应用户

ps -f -p PID

2023-03-30 09:36:03 514

原创 python存模型

继承torch.nn的用torch.save()普通类用joblib。

2023-03-30 09:35:46 55

原创 screen 翻页模式

screen模式无法翻页,鼠标无法滚动问题_screen 翻页_三木每森的博客-CSDN博客

2023-03-30 09:35:15 176

空空如也

空空如也

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

TA关注的人

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