自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录Day16| 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树

递归+回溯,递归不需要返回值,需要设置全局的结果变量来接收和更新结果。本题属于二叉树的层序遍历的延申题,可以在层序遍历模板上修改即可。每次res每层都覆盖为最新的最左边的数!根据中序和后序可以唯一确定一个二叉树。所以后序最后一个可以确定根节点。递归的返回值时boolean。一层一层切割-》递归。

2025-01-06 21:30:39 168

原创 代码随想录Day15|110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数

要充分利用完全二叉树的这个条件,在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。计算从该节点出发左子树深度和右子树的深度,如果相同,说明这个子树是满二叉树,节点数量为(2 << leftDepth) - 1,返回。把根节点从path里去掉,因为含有根节点的path已经在前面的递归里往下进行了,后面其他的运行就要去掉这个节点去寻找其他的节点了。前序遍历,根左右,需要先处理中间节点,记录路径上的节点,放进path中,然后。

2025-01-05 11:47:55 324

原创 代码随想录Day14|226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

需要注意的是,只有当左右孩子都为空的时候,才说明遍历的最低点了。如果其中一个孩子为空则不是最低点。前序遍历和后序遍历都行,但是中序遍历不可以,因为中序遍历相当于会把其中一边的节点反转两次。属于层序遍历的扩展题,层序遍历的层数就是二叉树的最大深度。思想:每个节点的左右子节点转换一下,但要注意遍历顺序!这块比较的是外侧和内侧!可以同样使用层序遍历的思想来解决。

2024-12-30 20:47:35 205

原创 代码随想录Day13|递归遍历 迭代遍历 层序遍历

一个统一的风格来进行二叉树的前中后序的遍历(迭代法),所以我们采取一个加入NULL到栈中的模式,将遍历顺序和处理顺序区分开,针对处理过的节点后面加一个null,当栈顶元素为null的时候就弹出对应的元素。队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。

2024-12-30 19:41:37 153

原创 代码随想录Day11|150. 逆波兰表达式求值239. 滑动窗口最大值347.前 K 个高频元素

思路:和删除字符串中相邻重复项差不多,这里是如果遇到数字就加入,如果遇到运算符就弹出栈顶的两个元素,运算后再压入栈。根据题意,i为nums下标,是要在[i - k + 1, i] 中选到最大值,只需要保证两点。3)因为单调,当i增长到符合第一个k范围的时候,每滑动一步都将队列头节点放入结果就行了。1)队列头结点需要在[i - k + 1, i]范围内,不符合则要弹出。2)既然是单调,就要保证每次放进去的数字要比末尾的都大,否则也弹出。就可以了,同时保证队列里的元素数值是由大到小的。利用小顶堆,然后最后。

2024-12-29 20:26:17 164

原创 代码随想录Day10| 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

先进先出到先进后出,相当于每次弹出栈顶元素的时候,要把队列里的元素最后一位挪到前面,再peek()。2. 遇到右括号,和栈顶元素匹配,一样的话弹出栈顶元素,不一样的话就直接返回false。同理,要用两个队列来实现栈。(其实用一个队列或两个队列实现都可以,可看笔记)1. 每次和栈顶元素进行匹配,一样的话弹出栈顶元素。所以用栈实现队列,重点是从先进后出模拟先进先出,需要。2. 最后把栈里的元素转换成string返回。1. 遇到左括号,将对应右括号入栈。,每次弹出的时候取到栈底元素。

2024-12-25 21:00:07 200

原创 代码随想录Day08|344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字

2. 判断反转的终止位置,即end=i+k-1,一个是要注意这里要减一,再就是要注意第一次报错就是忘了如果最后一组剩下的元素数量不够k个的话,就有多少反转多少,故end的位置为。这道题综合的思路应该是先扩容数组,然后再倒序遍历,遇到数字就替换成number,但是因为我们是用的java刷题,java中String对象是不可变的,所以必须要重新。重点:1. 因为不能使用额外的空间,所以就算在原地替换数组元素,考虑使用双指针法。创建一个新的字符串!重点:1. 判断反转的起始位置,即i=2*k。

2024-12-19 10:47:25 155

原创 代码随想录Day07|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

可以延续三数之和的思路,多嵌套一层循环,i,j=i+1,left=j+1,right=nums.length-1,同样的剪枝和去重操作,注意这里是target不是0,所以在判断的时候条件为如果第一个数大于0且大于target才跳过。2. 然后遍历c和d,如果0-c-d出现在map里,即map.containsKey(0-c-d),那么说明存在能够让a+b+c+d=0的组合,这个时候原来map里0-c-d对应的value就是能满足的组合数。1. 因为限定在小写字母,所以是有限的,故可以用数组。

2024-12-18 11:29:30 225

原创 代码随想录Day06|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

2. set里的set/multiset的底层实现是红黑树,unordered_set底层实现为哈希表。如果要求有序还要有重复数据,用multiset。要点:1. 使用两个set,先遍历第一个数组,然后在遍历第二个数组时如果出现在第一个数组中,则加到结果set中。unordered_set 读写效率是最高的,并不需要对数据进行排序,而且还不要让数据重复,所以选择unordered_set。1. 这道题需要用map了,不能用set因为不仅需要元素还要同时知道元素所在的位置,所以既需要key还需要value。

2024-12-17 10:04:43 353

原创 代码随想录Day04| 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

2. 在判断出有环的基础上,判断环的入口位置,要点是:从链表head和相遇点分别出发两个节点,最终一定会在链表成环的入口相遇。(具体推导可看笔记)2. 两两一对,考虑指针之间指向的顺序,在进行某些操作时,要用tmp节点去保存,防止节点之间指向改变后索引丢失,如本题中的node2.next;1. 双指针法,快指针先走n个节点,然后快慢指针同时向后移动,直到快指针指向null;2. 这个时候慢指针的下一个节点就是要删除的节点。1. 判断链表有无环的条件:快指针、慢指针是否相遇。要点:1. 虚拟头结点。

2024-12-15 20:57:13 219

原创 代码随想录Day03| 203.移除链表元素 707.设计链表 206.反转链表

链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。这里的tmp是为了存储原来的cur.next,因为当连接方向变了之后就找不到原来的cur.next了。注意:这里有size的概念,所以在每次进行增加或删除元素的操作时,要对应修改size。储存方式:数组是在内存中是连续分布的,但是链表在内存中可不是连续分布的。,cur指针和pre指针,成对往后移动,变换两个元素之间的连接方向。

2024-12-13 16:19:30 423

原创 代码随想录Day02|209.长度最小的子数组 59.螺旋矩阵II 区间和 开发商购买土地

滑动窗口的精妙之处在于根据当前子序列和大小的情况,不断调节子序列的起始位置。假设划分成了两个部分a和b,则a+b=sum 两者差值的绝对值为|a-b|=|a-(sum-a)|=2)而结束位置的指针就是指滑动窗口遍历的指针,即for循环里的索引。1)若当前滑动窗口内的数值和已经大于等于s,则起始位置右移。注意ACM模式下,要自己写输入输出,Scanner的运用。,要么最后一个点包含在此行/列内,要么就都不包含。下面是一个每个拐角点都包含在此行/列内的方法。也可以看成是两个指针,起始位置和结束位置。

2024-12-13 14:03:49 390

原创 代码随想录Day01|704. 二分查找 35.搜索插入位置 34. 在排序数组中查找元素第一个最后一个位置 27. 移除元素 977.有序数组的平方

情况一:target 在数组范围的右边或者左边,例如数组{3, 4, 5},target为2或者数组{3, 4, 5},target为6,此时应该返回{-1, -1}情况二:target 在数组范围中,且数组中不存在target,例如数组{3,6,7},target为5,此时应该返回{-1, -1}情况三:target 在数组范围中,且数组中存在target,例如数组{3,6,7},target为6,此时应该返回{1, 1}所以目的就是寻找左边界和右边界。采用二分法来去寻找左右边界。

2024-12-11 22:17:47 360

原创 docker pull 总是显示超时

经常会遇到,docker pull一个镜像,会显示超时,即使配置了aliyun的registry-mirrors也不行,怎么就是拉取不了。然后再docker pull就可以了,这样大概率会成功。最后发现,在终端里面登录一下,就基本上好了。

2024-10-13 16:16:14 561

原创 docker部署xxl-job调度中心

容器,容器内部应用程序会连接到宿主机上的 MySQL 数据库(假设 MySQL 服务运行在宿主机的 3306 端口上),并将容器的 8080 端口映射到宿主机的 8093 端口。同时,容器的日志文件会存储在宿主机的。i. 因为是从docker容器里访问本机的mysql数据库,所以不能用localhost:3306进行访问!1)我是mac电脑,先下载了docker desktop for mac客户端,之后在终端中先拉取镜像。在容器内部解析为容器本身的地址,而不是宿主机的地址!目录中,容器会在后台运行。

2024-09-11 10:31:16 467

原创 swagger集成踩坑记录

实际上,SpringBoot 2.6.0开始,请求路径与Spring MVC处理映射匹配的默认策略已从AntPathMatcher更改为PathPatternParser。但是可以通过设置spring.mvc.pathmatch.matching-strategy为ant-path-matcher来改变。上网查询原因,发现可能是因为当前环境拦截了 Swagger 默认的静态资源,只需在配置类文件中实现 WebMvcConfigurer 接口并重写 addResourceHandlers 方法即可。

2024-09-01 16:26:20 234

原创 记录npm install踩坑

zhu 最近在尝试做黑马的今日金融指数的项目,结果打开提供的前端资源后,尝试npm install一直失败。一开始一直显示代理的问题,网络链接差,proxy相关。一直尝试没有解决。后来一直会卡住,好几个小时也下载不成功。后来改用了cnpm下载,下载速度很快,但遇到很多问题,如包的版本依赖问题。我原来的node版本是v16.14.2的,在安装node-sass时一直报错,说4.0.0安装失败,后续查明原因说node-sass 4.x.x版本不适用于node的16.x.x的版本。

2024-08-30 21:34:55 310

原创 torchsummary用法

3. conv1层,in_channel数为3,因为输入的参数的通道数就是3。所以输出大小h= (32+2*1-3)/1 + 1 = 32。),则默认的步幅是等于池化窗口的大小。输出大小为(16+2*1-3)/1 +1 = 16。所以conv1的输出为[-1,16,32,32]所以conv2的输出为[-1,32,16,16]所以max_pool1层的输出为[-1,16,16,16]所以max_pool2层的输出为[-1,32,8,8]max_pool2层后,将其打平,一共的参数数量是32。

2024-06-05 19:59:44 2242

原创 向量one-hot编码和embedding

而这个10是由输入的总词数决定的,所以当总词数很多时,张量会很大很大,而embedding的3是我们人为自定义的,当总词数比较多的时候会比较有优势。从one-hot变成embedding的一个好处就是,编码的长度和总的词数没有关系了。相当于是把输入的每一项扩展了一个维度,映射到了embedding size大小的维度上。One-hot编码是一种将分类变量转换为二进制向量的方法,其中只有一个元素是1,其他都是0。Embedding是一种将分类变量映射到低维空间的方法,常用于自然语言处理中的词嵌入。

2024-06-05 19:55:01 1284

原创 PyTorch 深度学习实践 第12讲

第12讲 循环神经网络(基础)1. 卷积神经网络CNN,由于权重共享的概念,整个图像上用的卷积核是共享的。所需要的参数量是比较少的。而全连接层其实是参数量最大的部分。2. 所以RNN也是用到了权重共享的概念,减少需要训练的数量。3. 主要是针对有序列的数据,先后的时间序列关系,前后互相依赖。4. 自然语言,就是常见的具有序列关系的数据。RNN cell其实还是一个线性层。所有的这一串RNN cell,其实是同一个,这个线性层的权重是一直在循环使用的。

2024-06-05 16:38:41 1699 1

空空如也

空空如也

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

TA关注的人

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