自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码算法训练营day14 | 理论基础、递归遍历

int val;大家会发现二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。的意思是创建一个新的TreeNode对象,其值为x,并且它的左右子节点都被初始化为NULL。

2024-04-09 20:51:21 746

原创 代码算法训练营day13 | 239. 滑动窗口最大值、347.前 K 个高频元素

所以大家经常说的大顶堆(堆头是最大元素),小顶堆(堆头是最小元素),如果懒得自己实现的话,就直接用priority_queue(优先级队列)就可以了,底层实现都是一样的,从小到大排就是小顶堆,从大到小排就是大顶堆。用堆去遍历map中的元素,因为我要输出前k个高频元素,所以堆的大小就设置成k,也就是说堆里面就维持k个元素。遍历完之后,这个堆就维护了我们想要求的前k个高频元素。其实就是一个披着队列外衣的堆,因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。

2024-04-08 16:02:37 120

原创 代码算法训练营day11 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

我们在删除相邻重复项的时候,其实就是要知道当前遍历的这个元素,我们在前一位是不是遍历过一样数值的元素,那么如何记录前面遍历过的元素呢?第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的多了!第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。首先要弄清楚,字符串里的。

2024-03-21 12:48:20 762

原创 代码算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

用两个队列que1和que2实现队列的功能,que2其实完全就是一个备份的作用,把除que1最后面的元素外的元素都备份到que2,然后弹出que1中这个最后面的元素,再把其他元素从que2导回que1。既然想用单开门实现双开门,那么一个单开门肯定是不够的,因为单开门进出的顺序已经不满足双开门的顺序了,所以我们需要设置两个单开门,让其中一个单开门是进栈状态,另一个单开门是出栈状态。队列是先进先出的规则,把一个队列中的数据导入另一个队列中,数据的顺序并没有变(依旧是先进先出),并没有变成先进后出的顺序。

2024-03-17 21:22:35 376

原创 代码算法训练营day9 | 28. 实现 strStr() 、459.重复的子字符串

next数组就是一个前缀表(prefix table)前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。举个例子:(在文本串中查找是否存在模式串)文本串:aa b aabaafa — 模式串:aa b aaf可以看出,文本串中第六个字符b 和 模式串的第六个字符f,不匹配了。如果暴力匹配,发现不匹配,此时就要从头匹配了。但如果使用前缀表,就不会从头匹配,而是从上次已经匹配的内容开始匹配。

2024-03-16 17:41:54 821

原创 代码算法训练营day8 | 344.反转字符串、 541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。首先在移除空格的操作上,思路是,遇到空格就去除,没遇到空格的赋值给新的下标。举个例子,源字符串为:" the sky is blue "一种是分情况移除多余空格 – 前导空格、中间空格、尾随空格。reverseString函数在实现的时候是左闭右闭的反转。移除多余空格 : “the sky is blue”单词反转:“blue is sky the”第二步:将整个字符串进行反转。

2024-03-14 20:17:48 484

原创 代码算法训练营day8 | 344.反转字符串、 541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

等到下一个while循环的时候,如果不提前更新num的话,num- -就会出现下标越界的错误。对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。当i 指向的值是数字时,把number一个个的赋给j,每赋一个字母,j- -。如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,可以考虑使用库函数。按照上述所说,既然替换之后原来的字符串的长度一定会增大,那可以先计算出来替换后的string的长度是多少。

2024-03-14 19:26:23 938

原创 代码算法训练营day7 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

接下来如何移动left 和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。然后再去找第二个数 i,i=k+1,先剪枝(二级剪枝:对b),和一级剪枝一样,都得是正数才行。

2024-03-12 19:53:40 333 1

原创 代码算法训练营day7 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

这里这么用不合适,这里的失败条件是:既然次数- - 了,那次数只能不断减少而不是在增多,所以当次数<0的时候,这不就代表了字母不匹配了吗。之后遍历数组3和数组4的时候,找到了一个-2,一个1,那么既然想要四个数的和==0,那么就要在结果中找是否存在(0-(-2)-1)这个数是否存在,也就是1这个数是否存在。通过前面的三数相加题,有一个对应思路,仍旧是找一个数组,里面放着被遍历到的数,然后在这个遍历数组中查询有没有我想要的那个数,有的话count做加法,count是计算有多少个元组满足条件。

2024-03-12 11:50:24 860 1

原创 代码算法训练营day6 | 202快乐数、 1两数之和

因为本题,我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标(因为要返回下标值),所以需要使用 key value结构来存放,key来存元素,value来存下标,我们每次去询问key值是否存在,此时使用map正合适。如果想要两个元素之和的结果是9,那么当我遍历到元素2的时候,我需要去集合中去询问,7(9-2=7)这个元素是否出现过,如果出现过,就找到了这两个数。A2:判断元素是否出现,这个元素就要作为key,所以数组中的元素作为key,有key对应的就是value,value用来存下标。

2024-03-11 14:05:31 359

原创 代码算法训练营day6 | 242有效的字母异位词、349两个数组的交集

之后还是对这个数组ss进行操作,来计算字符串2中的字母所出现的次数,只不过是对该字母对应的次数上-1。这样的话刚才加的数现在都减完了,不就代表着出现的次数是相同的吗。A:优势条件:都是小写字母,也就是一共有26个,我用一个相对位置去表示这个次数是属于该字母的。因为26个字母的顺序是固定的,asc码也是固定的。看完文档中的哈希表的思路后,发现其和上面的暴力解法很像,只是空间复杂度小了,只用了一个数组来进行操作。那么用数组来做哈希表也是不错的选择,但是要注意,使用数组来做哈希的题目,是因为。

2024-03-11 13:21:39 458

原创 代码算法训练营day4 | 24两两交换链表中的节点、19删除链表的倒数第N个节点、 面试题 02.07. 链表相交、142环形链表II

首先要保护的就是前链断掉的节点,其次再看哪个节点前后都断了,就保护它。

2024-03-09 21:21:30 355

原创 代码算法训练营day3 | 203移除链表元素、707设计链表、206反转链表

链表问题很有意思,指针的指向也非常灵活,也要记得保存可能会丢失的那个值,很常见的就是cur->next。

2024-03-08 20:42:53 812

原创 代码算法训练营day2 | 977有序数组的平方、209长度最小的子数组、59螺旋矩阵Ⅱ

因为 i 和 j 是可以有相等的情况,那么如果在算出的值相等的情况下,k 要被赋值两次,那么就相当于把 i 重复赋两次,那么新数组的长度一定不够,也就是说会发生上述提到的越界问题。

2024-03-07 13:06:38 836

原创 代码算法训练营day1 | 704二分查找、27移除元素

双指针法,分别设定一个i 和一个j,i 表示新数组的下标,j 去遍历数组的每一个元素,查看是否和target相同。如果nums[j] == target的话,就往前移,i不动,覆盖之后 i 和 j 都往后移动。使用双指针法是非常方便的,还是要整理好i和j的逻辑关系,理清楚谁先走 谁后走 谁怎么走的。= target时, 一直往前移,i也要随之进行++,如果相等,那么i不动,等待 j 匹配到不相等的值的时候再让 j 去给 i 赋值。要注意的是,数组中的地址是连续的,不能随意删除,只能进行覆盖。

2024-03-06 11:22:22 984

原创 C++中传入数组名,指针接收。

C++传入数组名,用指针接收,在函数体内用数组名+下标来显示元素,

2023-12-09 11:12:47 388

原创 linux Pytorch(GPU版本)后出现torch.cuda.is_available()返回False,解决方案来啦

我当时下载GPU版本的pytorch的时候,就是直接从官网首页给的命令下载的,如下图:但是好像他们给出的命令默认安装的是CPU版本。这些都表示了下载的pytorch是CPU版本而不是GPU版本的,如果是GPU版本的话后面跟的应该是cuxxx。我把这条命令复制到命令行中,回车,等待安装。输出True,表示安装成功。

2023-08-15 19:40:18 337 1

原创 在云服务器上安装Anaconda,安装CPU版的pytorch,运行pytorch代码

在阿里云服务器中进行anaconda的一个配置,也包括了CPU版本的pytorch的安装,为后面pytorch代码的run提供了基础条件

2023-08-13 19:44:35 236 2

原创 解决:No module named ‘cv2‘ 、No module named ‘tensorboardX‘、No module named ‘skimage‘、.....

代码复现过程中的一些问题,解决NO MODULE的问题

2023-08-09 18:51:56 114 1

原创 如何查看虚拟环境中的python版本

在虚拟环境中使用命令轻松查看python版本

2023-08-09 16:44:42 2162

原创 VScode 运行编译 + 调试 C/C++,详细教程!!

在vscode里面对C语言进行编译和调试,适合新手,建议收藏!!

2023-07-06 00:00:47 4709 1

原创 IDEA连接mysql数据库保姆级教程!!学不会我倒立!!

在IDEA中建立数据库链接,详细教程

2023-05-30 19:56:15 1754 1

原创 java: 错误: 不支持发行版本 6 ------ 解决方案

运行java文件报错,解决方案简单粗暴

2023-05-27 20:16:17 5929 5

原创 pycharm中import torch报错,解决方法(包含环境配置流程,不需要的可以省去第一部分)

解决pycharm中import torch报错

2023-04-02 12:06:52 856 2

原创 在anaconda中下载pytorch

使用anaconda安装pytorch库,从安装anaconda开始,从头到尾!

2023-03-30 22:12:20 1353 1

空空如也

空空如也

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

TA关注的人

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