- 博客(156)
- 收藏
- 关注
原创 leecode100-第35题-二叉树的中序遍历-递归、迭代、莫里斯
迭代和递归没什么好讲的。莫里斯的核心想法:“ 消除 ” 某个子节点,这样二叉树就变成了一个链表,然后遍历输出u就可以了。那么问题就是怎么消除?思考一下:我们是想实现中序遍历,因此在形成的链表中,顺序就应该是:左子节点->跟节点->右子节点如果我们能把所有的跟节点及其右子树都变成左子节点的右子节点,那么就实现了基本的“ 消除 ” 某个子节点,形成了链表但是具体应该怎么消除呢?莫里斯的做法是:就将跟节点连带右子树全部挂到左节点的最右子树下面。
2025-07-04 14:03:48
264
原创 leecode100-第26题-回环链表2
题目不仅要判断是否存在环,还要返回环的起点节点。快慢指针寻找环如图所示abn∗bc,fast_p走过的路程是abm∗bc。已知abn∗bc))∗2abm∗bc,简化得:acm−2n−1∗bc这个等式的含义就是,从 链表head 到 环head 的长度=快慢指针相遇点 到 环head的长度+ 环长度*某个未知数。因此我们可以写出等价代码:当快慢指针相遇的时候,我们使用一个指针pos指向链表的head,
2025-07-03 16:17:35
594
原创 leecode100-第22题目-相交链表
使用 双指针,分别从两个链表的头部出发:• 指针 p1 走 headA → headB• 指针 p2 走 headB → headA当它们相遇时,不论是:• 在某个交点相遇 ✅• 或都指向 None ❌(说明无交点)都可以在 p1 == p2 的时候退出循环。
2025-07-02 20:23:10
127
原创 pytorch配置安装 ninja报错:ninja: build stopped: subcommand failed or RuntimeError: Error compiling objects
安装成功后,结合另外一个操作,就安装成功了。所以搞了两天,就是因为少下了一个包,哭了。顺便去学习下ninja是啥。
2024-07-04 18:47:49
1166
原创 【已解决】: fatal error: cuda_runtime_api.h: No such file or directory
因为我要使用的是cuda-11.3,因此复制该路径。既然他找不到,我们就把路径给他写清楚!
2024-07-04 17:01:20
2036
1
原创 一些loss和指标记录_python实现
2 Lpips_loss感知损失,符合人眼的损失输入网络提取特征,计算L2距离,算平均。3 PSNR全称:peak signal-to-Noise Ratio 峰值信噪比定义:给定大小为n∗mn*mn∗m的标签图片III和模型输出图片KKK:rgb情况下计算PSNR的代码:4 SSIM全称:Structural Similarity 结构相似性5.3 判别器的loss注意,计算判别器的loss,由有部分组成。两个输入,real_img和fake_img。6 FID指标FID指标:用于衡
2024-04-10 13:15:44
1076
1
原创 MAC 的vscode菜单栏怎么调?
我去,这个bug找到了半天,终于找到正解了,仅记录,为广大和我一样不熟悉mac的兄弟们避坑。正解:mac的vscode的菜单栏在屏幕最顶上,不用调出来,人家一直都有。
2024-03-04 19:19:29
2744
5
原创 python参数保存和加载load和load_state_dict
【代码】python参数保存和加载load和load_state_dict。
2024-01-21 12:19:33
614
1
原创 修改vs中python的默认环境
文件——>首选项——>设置输入python——>点击用户——>点击python——>找到默认python路径,输入你想要的默认环境即可
2023-12-06 10:43:49
556
原创 nn.AdaptiveAvgPool2d(output_size)输入和输出怎么回事?
函数作用:自适应进行平均池化。不用管输入、stride、padding,函数参数只有输出大小,其他的这个函数帮你搞定。问题就是,我想知道他是咋搞定的?
2023-12-04 17:10:36
1734
原创 【Retinex theory】【图像增强】【python实现】-笔记
retinex 是常见的图像增强的方法,retinex 是由两个单词合成的:retina + conrtex ,即视网膜+皮层。
2023-10-15 13:43:23
3174
2
原创 leetcode_第17题_缺失的第一个正数——原地哈希
比如:1 2 3 4 5。如果数组里有不正常数字4 5 3 -1,就会出现 -1 5 3 4,即 3 4 位置正确。的地方,不正常数字不管。(正常数字是指,值∈[1,len])最后遍历一遍,找到最小的 i!=nums[i]即可。正常思路:另外制作一个哈希表,然后遍历就ok。这样,如果一个数组里都是正确的数字,就会出现。但是这样不符合题目空间复杂度要求,所以采用。交换存储到下标位置为。
2023-07-10 15:38:11
437
原创 leecode-下一排列
那就是从右到左开始遍历寻找第一次递减(这里指从右看是递减)的那个数字,例子中就是4(因为只有递减了,即4 后面有比自己大的数字,这个数字才能被交换到4的位置,成为下一排列)妈呀,其实我直接调用函数,一行代码就通过了hhh,不过这种取巧的方式不可取,还是得老老实实的写。既然是下一排列,那么肯定从某一数字开始,下一排列的数字更大,那么这个位置是怎么确定的呢?大的最小的数就可以了。(因为一定递减(这里指从右看是递减),因此从后往前遍历到第一个比。后的数组进行一个排序(因为原本是递减的,所以直接反转就可以了)
2023-06-28 16:25:27
307
原创 leecode-二分查找
可以看到当target不存在于数组中时,会以nums[i]j结束循环,nums[i]就是刚好小于target的那个数字,而nums[i+1]就是大于target的数字。大家都知道二分查找其实有很多种写法,这里一个比较巧妙地点就是,这个写法可以在返回插入位置的时候直接返回。那么为什么这种写法可以呢?举例分析:如果我们的输入是 1 3 4 5 2。
2023-06-28 11:20:54
421
原创 浅拷贝与深拷贝
如果不想对象之间相互影响,一定要写深拷贝。串引用的时候,规范写法,记得写const,避免无意识的修改不应修改的值。开辟新空间的写法。
2023-06-19 15:15:16
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人