- 博客(67)
- 收藏
- 关注
原创 代码随想录算法训练营第4天|24. 两两交换链表中的节点、面试题 02.07. 链表相交、19.删除链表的倒数第N个节点、141. 环形链表、142. 环形链表 II
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。 快指针:要保证删除的是倒数第二个节点,就需要有一个指针去前面“探路”,比慢指针要快走(n+1)步。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。之后两个cur指针一起移动,判断有没有一样的节点。
2024-10-04 16:20:03 973
原创 代码随想录算法训练营第48/49天|单调栈专题— 739. 每日温度、 496.下一个更大元素 I、503.下一个更大元素II、 42. 接雨水、 84.柱状图中最大的矩形
对于每个 0
2024-10-04 12:33:53 628
原创 回溯大总结
回溯是一种穷举的搜索算法,并不是一个高效的算法,当一些问题暴力搜素也无法穷举的时候就要使用回溯。回溯法解决的问题都可以抽象为树形结构回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。本质上是for循环+递归。
2024-10-01 21:47:21 797
原创 代码随想录算法训练营第15天|110. 平衡二叉树、257. 二叉树的所有路径、404. 左叶子之和、222. 完全二叉树的节点个数
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。先计算两个子树的高度,之后比较,比较如果绝对值差不超过1,就返回高度;🆘如果在某个子节点以及不是平衡二叉树,说明整体就不是平衡二叉树,直接返回-1(在左节点后先来个判断)给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。叶子节点 是指没有子节点的节点。
2024-09-19 15:43:29 842
原创 代码随想录算法训练营第3天|链表理论基础、203. 移除链表元素、 707.设计链表、 206.反转链表
void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。:链表的结构就决定了要想操作某一节点就要知道前面的一个节点,但是头结点是没有前一个节点的,如果不想特殊化处理头节点,可以引入一个虚拟头节点,目的是让头节点也变成一般节点。但是如果要移除头节点,头结点可是没有上一个节点的,所以要把头节点直接指向头节点的下一节点。1️⃣ 插入节点:先连接后面的节点,再连接前面的节点。2️⃣删除节点:指针要指向被删除节点的前一个节点。
2024-09-19 11:53:24 1080
原创 代码随想录算法训练营第14天|226. 翻转二叉树、101. 对称二叉树、104. 二叉树的最大深度、111. 二叉树的最小深度
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。❌中序不可以,why?二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。输入:root = [4,2,7,1,3,6,9]输入:root = [1,2,2,3,4,4,3]此时,题目就变成了求根节点的最大高度,那就是。此时,题目就变成了求根节点的最大高度,那就是。说明:叶子节点是指没有子节点的节点。树的最大深度就是根节点的最大高度。树的最大深度就是根节点的最大高度。
2024-09-13 18:18:42 1061
原创 代码随想录算法训练营第13天|二叉树基础知识、递归遍历、迭代遍历、层序遍历、116. 填充每个节点的下一个右侧节点指针
满二叉树:除了根节点,每个节点都有两个孩子完全二叉树:除了最底下的右侧节点可能没填满外,其余每层节点数都达到最大值。二叉搜索树:左节点小于根节点,有节点大于根节点平衡二叉搜索树:在二叉搜索树的基础上,左右两个子树的高度差的不超过1前中后序遍历前序遍历:中左右中序遍历:左中右后序遍历:左右中递归遍历前序递归遍历—144. 二叉树的前序遍历题目链接:添加链接描述迭代遍历前序遍历是中左右,每次先处理的是中间节点,再处理左节点,最后右节点设计一个栈:先将根节点放入栈中,然后将右孩子加入
2024-09-13 15:56:13 564
原创 代码随想录算法训练营第44天|1143. 最长公共子序列、1035.不相交的线、53. 最大子数组和、392.判断子序列
(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。🍬局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。如果s和t的子序列长度等于s的长度,就代表s是t的子序列。
2024-09-12 20:44:24 1059
原创 代码随想录算法训练营第43天|300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l
2024-09-12 16:07:24 714
原创 代码随想录算法训练营第27天|455. 分发饼干、376. 摆动序列、53. 最大子数组和
尽量用大饼干来喂大胃口的孩子,如果遍历思路不清晰,可以拿例子试一下,就知道什么时候该+1了。
2024-09-11 14:21:34 622
原创 代码随想录算法训练营第42天|188. 买卖股票的最佳时机 IV、714. 买卖股票的最佳时机含手续费
🍇在买卖股票这种类型题里面,考虑的是持有或者不持有股票这两种状态,持有不代表是当天买的,只是当天手里是有这个股票的👉 买卖股票的最佳时机:股票只能买卖一次,问最大收益。# dp[i][0]代表第i天不持有股票能够获得得利润# dp[i][1]代表第i天持有股票能够获得的利润👉 买卖股票的最佳时机 Ⅱ:股票可以买卖无数次,问最大收益。👉 买卖股票的最佳时机 Ⅲ:股票最多买卖两次,问最大收益。# dp[0][0] = -prices[0] # 第一次持有股票。
2024-09-10 18:00:15 889
原创 代码随想录算法训练营第41天|121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II、123. 买卖股票的最佳时机 III
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。
2024-09-10 16:18:41 955
原创 代码随想录算法训练营第39天|198.打家劫舍、 213.打家劫舍II、337. 打家劫舍 III
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
2024-09-09 16:15:11 1185
原创 代码随想录算法训练营第38天| 322. 零钱兑换、279.完全平方数、139.单词拆分
如果凑12需要的完全平方数,可以对完全平方数进行遍历(从1开始),对于1这个完全平方数来说,有两种选择,我想要凑12的完全平方数个数更少的内个选择,选的话就需要计算凑11的完全平方数个数+1;凑足总额为j - coins[i]的最少个数为dp[j - coins[i]],那么只需要加上一个钱币coins[i]即dp[j - coins[i]] + 1就是dp[j](考虑coins[i])求完全平方数最小个数,那么完全平方数有顺序和没有顺序都可以,都不影响完全平方数的最小个数。所以背包和物品顺序都可以。
2024-09-09 11:03:34 688
原创 代码随想录算法训练营第37天|完全背包基础、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)
有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。
2024-09-05 20:12:32 626
原创 动态规划总结--01背包(未完待续)
如果某一问题有很多重叠子问题,使用动态规划是最有效的❓计算f(N)的时候需要f(N-1),也就是需要f(N-2),等等等,如果我们直接计算第n个的值,会导致前面的值被重复计算很多很多次⭐️把前面的值记录下来。
2024-09-05 12:28:28 790
原创 代码随想录算法训练营第35天|背包问题基础、46. 携带研究材料(01背包二维解法)(01背包一维解法)(acm)、416. 分割等和子集
小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。第i件物品的重量是weight[i],得到的价值是value[i]。
2024-09-03 21:28:14 976
原创 代码随想录算法训练营第34天|62. 不同路径、63. 不同路径 II、343. 整数拆分、96. 不同的二叉搜索树
机器人试图达到网格的右下角(在下图中标记为 “Finish” )。给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]的拆分乘积最大值,这里其实就说明我们需要更小的整数拆分结果来得到n的整数拆分结果,dp[i] : 1到i为节点组成的二叉搜索树的个数为dp[i]。
2024-09-03 14:57:17 1275
原创 代码随想录算法训练营第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
3️⃣ 爬3阶台阶:爬到1阶台阶之后2步上来;为什么不能爬到1阶台阶之后也一步再一步上来,因为这样的话就和2阶台阶的重了)给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。F(n) = F(n - 1) + F(n - 2),其中 n > 1。每次你可以爬 1 或 2 个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。2️⃣ 爬2阶台阶可以一步再一步,也可以直接2步。解释:你将从下标为 1 的台阶开始。1️⃣ 爬1阶台阶需要一步。
2024-09-02 19:06:41 732
原创 代码随想录算法训练营第十天|栈和队列理论基础、232. 用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项
使用一个栈,保存左边的括号,当遇到左边的括号就入栈,当遇到右边的括号,就pop栈顶元素,判断是否是一对儿(要注意,先判断栈是否还有元素,如果没有,说明第一个就是右边的括号->False),最后判断栈里面是否还有元素。1️⃣ 栈:使用栈记录从左边开始的字符,当遇到一个元素,就把栈顶元素和当前元素进行比较,如果一样就需要把栈顶元素丢了。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。2️⃣ 空间复杂度:栈O(N)双指针O(N)1️⃣ 时间复杂度:O(N)
2024-08-09 15:04:00 683
原创 代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II
找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。输入:target = 7, nums = [2,3,1,2,4,3]解释:子数组 [4,3] 是该条件下的长度最小的子数组。1️⃣ 暴力法,两个for循环嵌套,时间复杂度。2️⃣ 空间复杂度:1。
2024-08-04 23:07:28 823
原创 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素
输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]输出:[4,9,9,49,121]没有定义数组,只使用了变量。
2024-07-31 22:31:21 632
原创 流量预测中文文献阅读(郭郭专用)
这篇文章从预测的角度来分析并研究动态资源分配策略,使用米兰数据集,对时空维度的数据进行流量预测CDR,采用卷积模块,时间嵌入模块(?),注意力模块。在流量预测的基础上,实现了信道资源按需分配,即每个小基站按照其覆盖区域下的流量大小比例分配子信道资源。基站的信道资源采用图论的最大团方法进行分配。每个小基站的资源分配给用户采用动态子信道分配策略,最大化用户满意度。
2024-01-13 22:00:24 1131
原创 2024年1月12日学习总结
第二个和第三个都能够正确的分类。因为此时第三个模型虽然很精确地区分了所有的训练数据,但是他是通过记住训练数据的微小波动来得到这样一个“完美”的训练准确率的,但是此时这个模型只学到了当前训练数据集的特征,没有学到数据的整体特征,他不能成功的表达除了训练数据以外的其他数据,don’t generalize(概括)当我们猜测模型是过拟合状态时就要使用正则化,过拟合状态的显著特点就是验证集具有不好的性能,验证集是模型没有“看到过”的数据,所以如果模型值学到了训练集数据的知识,那么在验证集上将具有很差的性能。
2024-01-13 12:41:41 982
原创 2024年1月9日学习总结
,联邦学习就是分布学习的一种形式,但是它和传统的HPC(high performance computing)不同,HPC的目的是减少训练的时间,因为你也知道经历45天的训练,想要记得上一次调整的超参数是多么困难😰。它首先定义了一个名为layers的空列表,用于存储网络结构中的层。深度学习对于数据的需求是贪得无厌的(insatiable),越多的数据训练的效果越好。在__init__方法中,我们首先调用父类的__init__方法,然后定义了一个名为features的成员变量,它包含了VGG网络的卷积层。
2024-01-09 21:22:55 1311
原创 2024年1月8日学习总结
在pytorch中,一个torch.nn.Model模型的可学习参数(比如权重或者偏置)保存在model.parameters()中。state_dict是一个Python字典,它将每一层映射到对应的参数张量。例子return x。
2024-01-08 21:56:25 1120
原创 2024年1月7日学习总结
然后,我们调用parse_args()函数来解析命令行参数,并将解析结果存储在args对象中。其中在init里面通过nn.Sequential创建一个“存储仓”模型,一个接一个的往里填入layers,存储在变量self.layers中。字典的每个键值 key:value 对用冒号分割,每个键值对之间用逗号分割,整个字典包括在花括号 {} 中。分为三种:删除字典里面的某一个key的value、删除字典的所有key-value对、删除字典。字典value可以是任意的类型,但是key有具体的要求。
2024-01-07 21:39:33 1342
原创 pandas中的函数学习(不断更新)
功能:打印一个DataFrame的简要介绍(index范围、columns的dtype、非空值的数量和内存的使用情况){ }表示字典数据类型,字典中的数据是以 {key : value} 的形式显示,是键名和键值一一对应形成的。函数功能:可根据指定列数据也可根据指定行的数据排序。函数功能:将datadrame转换成字典的形式。函数功能:对dataframe进行函数处理。函数功能:重置索引(重置成默认索引)函数功能:将数据按照某一列进行划分。函数功能:指定某一个列作为索引。
2024-01-02 12:48:23 893
原创 流量预测_MLP模型_keras
训练集在建模过程中会被大量经常使用,验证集用于对模型少量偶尔的调整,而测试集只作为最终模型的评价出现,因此训练集,验证集和测试集所需的数据量也是不一致的,在数据量不是特别大的情况下一般遵循。为了使模型“训练”效果能合理泛化至“测试”效果,从而推广应用至现实世界中,因此一般要求训练集,验证集和测试集数据分布近似。我在预测一个名字叫做elborn基站的下行链路流量,用过去29天的数据预测未来10天的数据。在训练监督学习(深度学习)模型前,要把time series数据转化成samples的形式。
2024-01-02 12:41:20 1384
原创 声纹识别_加入噪声
我们需要计算原始音频的RMS和噪声音频的RMS,为了能得到规定的SNR,我们需要修改噪声的RMS值,办法就是将每个噪声元素都乘上一个常数,这样就能使得噪声的RMS值也乘上一个常数,达到需要的噪声RMS。学习如何将噪声加入到audio data中,后续可以将不同SNR的噪声加入原始信号样本,评估不同噪声条件下的模型性能。首先读取原始audio.wav(里面是一段话:“leave my dog alone”)噪声是服从高斯分布,均值为0,标准差是。将有噪声的音频加入到原始音频中。
2024-01-02 12:38:26 1480
原创 深度学习MLP_实战演练使用感知机用于感情识别_keras
和其他算法不同,这个目标函数不能求导,所以Perceptron使用 Stochastic Gradient Descent(随机梯度下降法)来最小化目标函数(如果数据集是线性可分的,就可以使用这个方法,并且在有限的steps内converge收敛)在较低的文本语料库中,一些词非常常见(例如,英文中的“the”,“a”,“is”),因此很少带有文档实际内容的有用信息。的梯度,之后让第一个隐藏层的权重更新为这个梯度,这个过程将抑制持续,直到所有的输入输出对都收敛,意味着新的梯度不能改变收敛阈值。
2024-01-02 12:35:05 1170
原创 声纹识别资源汇总(不断更新)
speaker identification的概念就是拍段一段语音是谁所说,说话人辨认分为开集辨认和闭集辨认,当确定说话人在注册声纹库里时,是一个N选一的有限范围选一个的闭集任务,当不确定当前音频是否在注册声纹库里时,是一个开集任务。开集比闭集的要难很多。Speaker Recognition是一个大方向,包含说话人验证(speaker verification),说话人辨认(speaker identification),说话人分离(diarization)等小方向,本项目中需要的是说话人辨认这个方向。
2024-01-02 12:26:23 2577
原创 4-文献阅读-A Data-driven Base Station Sleeping Strategy Based on Traffic Prediction
因为宏基站目标是无缝覆盖小区和用户移动,我们的策略是激活最少数量的宏基站,但流量负载超过基本水平时,才会激活更多的宏基站微基站增加网络容量,由于微基站的功耗是远小于宏基站的,所以肯定会为了节能尽可能多的启动微基站来提高网络容量。最重要的是,所提出的MGCNLSTM的性能最好,特别是图13中小区流量预测曲线的波峰和波谷。但是微基站的容量随基站数量的变化曲线却没有饱和区属,因为微基站的传输功率较低,告饶引起的容量饱和只出现在超密集网络的场景中,米兰的流量数据微基站并没有达到超密集的程度(
2024-01-02 12:00:08 887 1
原创 2023年12月28日学习记录
今天读了文献,对代码进行了整理,效率比较低,因为一直想看抖音hhh下次还是要把手机拿远一点!回去,原神启动!在这里插入图片描述ps 有没有深度学习研究生搭子一起假期发论文!🤡。
2023-12-28 20:58:34 1193
原创 2023年12月27日学习记录_加入噪声
我们需要计算原始音频的RMS和噪声音频的RMS,为了能得到规定的SNR,我们需要修改噪声的RMS值,办法就是将每个噪声元素都乘上一个常数,这样就能使得噪声的RMS值也乘上一个常数,达到需要的噪声RMS。后续学习方向:后续要保证每天一篇相关论文,先从有复现的论文读起,同时要对流量预测的模型进行学习,建模的时候学习pytorch库和keras库。学习如何将噪声加入到audio data中,后续可以将不同SNR的噪声加入原始信号样本,评估不同噪声条件下的模型性能。噪声是服从高斯分布,均值为0,标准差是。
2023-12-27 21:19:18 1072
原创 2023年12月24日学习总结
训练集在建模过程中会被大量经常使用,验证集用于对模型少量偶尔的调整,而测试集只作为最终模型的评价出现,因此训练集,验证集和测试集所需的数据量也是不一致的,在数据量不是特别大的情况下一般遵循。为了使模型“训练”效果能合理泛化至“测试”效果,从而推广应用至现实世界中,因此一般要求训练集,验证集和测试集数据分布近似。我在预测一个名字叫做elborn基站的下行链路流量,用过去29天的数据预测未来10天的数据。在训练监督学习(深度学习)模型前,要把time series数据转化成samples的形式。
2023-12-24 21:46:08 946
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人