- 博客(34)
- 收藏
- 关注
原创 【算法与数据结构复习】| 基数排序
先开始设置offset=1,那么nums[i]每次比较位数就是(nums[i]/offset)%10,每次offset要*BASE(BASE表示数组的进制数,一般为10)。计数完成后,将cnt处理成前缀累加的形式,前缀累加的cnt形式可以理解为cnt[i]为【提取的一位数字】<=i 的个数,这样方便我们后续倒序处理定位help数组中的位置。然后进行倒序处理,提取一位数字,然后放到cnt[i]-1的位置,然后cnt[i]-1。基数排序和其他排序最大的不同就是,基数排序不是基于比较的排序。
2024-09-21 02:24:15 291
原创 【算法与数据结构复习】| 堆结构和堆排序
今天跟着左程云算法课25复习了堆结构和堆排序相关内容。对于一个数据nums,我们可以将其理解为一个完全二叉树。完全二叉树就是指按照层次来添加数,每层满了再往下一层添加。对于数组中下标i,其父节点的下标为(i-1)/2,左孩子的下标为2*i+1,右孩子的下标为2*i+2。在堆结构中有两个重要的步骤:1)i位置的数,向上调整大根堆。2)i位置的数,向下调整大根堆,当前堆大小为size。
2024-09-20 15:10:05 336
原创 【算法与数据结构复习】| 快速排序
今天刷力扣215.数组中第K个最大元素,题目要求用时间复杂度O(n)。因此跟着左程云算法课23复习了随机快速排序。随机快速排序的核心思想就是在数组中随机选一个值x,把<=x的值移到左边,>x的值移动到右边。x这个值必须在左边区间的最左边,也就是确定了x的位置就是这里,然后再分别递归调用对左右两边进行排序。
2024-09-19 19:36:57 338
原创 【Springboot服务实现类】用户登录逻辑梳理(未完待续)
前端把用户名和密码POST过来之后,在login参数前面加一个@RequestBody,用于将 HTTP 请求体中的 JSON 数据直接绑定到方法参数上。它的作用是在控制器的方法中自动解析请求体中的数据,并将其转换为指定的 Java 对象。所以就是将JSON中的数据自动转化为一个java实体类对象。
2024-08-30 00:31:06 308
原创 【算法与数据结构复习】| 归并排序
那么归并排序的递归实现的时间复杂度是O(nlogn),需要辅助数组,所以额外的空间复杂度为O(n)。思考归并排序为什么比三傻排序要快,除了从时间复杂度上能看出来,从算法过程来看,归并排序的比较行为没有浪费,就是每一步比较之后都是有操作的,比较完后也有一个相对有序的中间结果,而不像三傻排序,遍历比较所有但只能确定一个数的位置。左程云的算法课到今天为止先暂停,左神算法课适合长时间的打基础,比较适合面向秋招(估计明年春季会继续地毯式复习)。(短期内我的目标比较明确,就是能够算法通过,并不适合地毯式学习)。
2024-08-14 20:15:49 222 1
转载 【Springboot+vue项目】环境搭建过程记录(未完待续)
在上面这个过程中的步骤:在VSCode开发工具去安装GitHub插件,中出现了问题。搜了一下应该是本机没有安装git。node.js安装及环境配置超详细教程【Windows系统安装包方式】 - 个人文章 - SegmentFault 思否。先下载vscode,不放链接了,直接搜个教程下载就可以。
2024-08-13 22:03:49 76
原创 【算法与数据结构复习】| 算法笔试中输入输出的处理AND递归理解master公式
今天跟着左程云算法课019和020,学习了【算法笔试中输入输出的处理】和【递归及master公式】。两节课都是偏重理论,简单总结一下。
2024-08-13 20:12:46 607
原创 【算法与数据结构复习】| 二叉树及其三序遍历的实现
具体步骤为:1)子树左边界进栈(左边界要进完);2)栈顶节点弹出,head指向当前弹出结点,打印,head指向head.right,重复步骤1;3)head为空且栈空时,结束。
2024-08-12 18:07:57 334
原创 【算法与数据结构复习】| 队列和栈-02
今天跟着左程云算法课015和016,实现【最小栈】和【双端队列】。都是力扣上的mid题,是队列和栈复习的后半部分。
2024-08-11 20:37:44 816
原创 【算法与数据结构复习】| 队列和栈-01
今天跟着左程云算法课013和014,复习了【队列和栈(以及循环队列)的实现】以及【栈和队列的相互实现】。是队列和栈复习的前半部分。
2024-08-10 20:43:04 951
原创 【算法与数据结构复习】| 链表类
今天跟着左程云算法课007-012,07和08讲了【时空复杂度】和【算法与数据结构的概念】,简单复习了一下。重点在于009-012课程链表类题目的学习。(1)单链表逆置链表逆置是链表类最基础的算法。head头结点要移动,除了head指向当前结点之外,要另外设置两个变量pre和next分别指向当前结点的前一个结点和后一个结点。(2)双链表的逆置双链表的逆置和单链表逆置思路一样,只是在当年节点的next变动时要pre和next一起变动,思路和上述的单链表逆置一模一样。
2024-08-09 20:06:58 938
转载 Transformer中Self-Attention以及Multi-Head Attention计算过程详解
原文名称:Attention Is All You Need原文链接:https://arxiv.org/abs/1706.03762最近Transformer在CV领域很火,Transformer是2017年Google在Computation and Language上发表的,当时主要是针对自然语言处理领域提出的(之前的RNN模型记忆长度有限且无法并行化,只有计算完tit_iti时刻后的数据才能计算ti+1t_{i+1}ti+1时刻的数据,但Transformer可以)。
2024-04-28 20:37:07 54
原创 力扣刷题记录-第12题-合并区间
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].[[1,5]]区间 [1,4] 和 [4,5] 可被视为重叠区间。
2024-03-10 23:32:43 455
原创 力扣刷题记录-第11题-最大子数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。
2024-03-08 20:23:56 384 1
原创 力扣刷题记录-第九题-字母异位词分组
给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。
2024-03-06 22:56:26 431 1
原创 力扣刷题记录-第八题-搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法。214。
2024-03-05 22:22:33 351 1
原创 力扣刷题记录-第七题-移除元素
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://是以“引用”方式传递的。也就是说,不对实参作任何拷贝// 在函数里修改输入数组对于调用者是可见的。
2024-03-04 22:47:18 407
原创 力扣刷题记录-第六题-两两交换链表中的结点
然后看图片,在head后面设置两个指针分别指向head的后两个元素,然后进行交换,交换的具体步骤自己画图捋清楚就OK。首先要进行空链表和单元素链表判断。然后看图,设置一个next1指针在head指针的后面,next1应该指向head,而head指向下面一部分的结果。如此递归,递归思路和代码如下,要注意head和next1改变指向的语句的顺序。在使用迭代法时出现了小问题,我把next和temp指针的定义放在外面会报错不通过,目前不通过的原因尚且不知道,先把代码放在这里占个坑,等我弄清楚了再在这里说明一下。
2024-03-03 21:33:00 412
原创 力扣刷题记录-第二题-两数相加
将当前的l1和l2的值相加之后,保留个位数放在result里,但是next1的值不能传到下一层,因此将next1的值直接加在下一层的l1或l2的值上。若l1或l2的下一层为空,直接新建一个值为0的listnode给l1和l2的下一层。这样犯了一个错误,l1和l2为空的时候,他们的next也为空,我又直接在这个空上进行赋值0的操作。到这里,就能想明白我们对l1和l2进行赋值0结点的操作这一步,与l1和l2之前的链表没有.next关系,是断开的链表节点,只在这次递归中用一下。的链表,表示两个非负的整数。
2024-02-27 17:14:21 386
原创 力扣刷题记录-第一题-两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出 和为目标值 target的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。示例 2:输入:nums = [3,2,4], target = 6。
2024-02-26 21:46:45 327
原创 DDPM玩具代码调试过程(三)
该图记录了模型中的某一层(可能是第14个上采样层)的残差连接(residual connection)的偏置参数(bias)。这个模块主要是记录模型中某一层的权重与偏置参数的梯度变化。Media:展示十张在标准正态分布随机采样的图,经过remove noise之后的结果;比较模糊,因为是玩具代码,代码功能能够基本实现DDPM算法的思想即可;这个错误表明在 Python 脚本中,尝试保存 PyTorch 模型权重时遇到了文件路径问题。如果需要消除这个fail,只需要修改代码中save权重的路径就可以了!
2023-09-11 15:46:19 496
转载 DDPM玩具代码调试过程(二)
如果是公用的服务器,先查看自己电脑cuda和torch的版本,以及python的版本,选择合适的pytorch版本去安装;于是用vscode配置连接组里的服务器:下载vscode;传输文件(直接从本机拖拽到左侧文件目录那里);)中,这样 Python 解释器就能够找到 'ddpm' 模块。vscode连接远程服务器(傻瓜式教学)_chls的博客-CSDN博客。(1)创建一个名称为zymddpm的conda虚拟环境。还未配置完,后面再继续...
2023-09-11 00:37:23 325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人