自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile及cmake学习

Makefile以及CMake编译学习

2023-05-08 16:46:56 696

原创 TCP/IP网络编程(三)

读书笔记

2023-05-06 19:59:40 715

原创 TCP/IP网络编程(一)

读书笔记

2023-05-06 19:59:39 3007 2

原创 TCP/IP网络编程(二)

读书笔记

2023-05-06 19:59:22 581

原创 代码随想录day23-回溯(1)

由于我们需要组合,那么如果剩余的元素个数比我们要求的长度都小的话,就不需要继续回溯下去了,这种情况就需要剪枝。我们总共的长度是。

2023-03-26 15:58:31 358

原创 代码随想录day18-二叉树(6)

,需要区分的是最后一层的最左边结点也有可能是右叶子结点,不一定是左叶子结点。

2023-03-13 23:41:21 145

原创 代码随想录day17-二叉树(5)

今天主要将之前的递归的方法稍微沉淀了一下,以及好好理解了一下回溯的思路。

2023-03-13 22:02:06 238

原创 代码随想录day16-二叉树(4)

首先我们不按照完全二叉树的思路来的话,直接就为了统计结点的个数,那么使用深度优先以及广度优先都是可以办到的,但是我们没有充分利用完全二叉树的特点。不能缺少,因为以根节点的左右结点为根节点的左右子树都不是平衡树的话,那肯定就是不符合答案的。的话,这个时候是不满足题意的,但是返回的却是1,即判定为平衡树。对于满二叉树而言,每一层的是满的,我们只要得到了层数i,那么节点的个数即使。然后对于一些普通话的完全二叉树的,我们就可以使用后序遍历来做。通过本题可以了解求二叉树深度 和 二叉树高度的差异,

2023-03-13 21:14:55 234

原创 代码随想录day15-二叉树(3)

如果说一棵树的左孩子的左侧和右孩子的右侧是相等的,左孩子的右侧和右孩子的左侧是相等的,如此下去,这个数就是镜像对称的,所以,这个题目我们要根据这一个点进行判断。这里要判定就是左孩子的左结点和右孩子的右结点,那么前提是什么呢,肯定要是这两个结点不为空啊,如果为空,不是直接就报错了吗,所以递归的终止条件就是在这个上面做文章。这每一条语句都有一个大前提,那就是node不能为空,node要是为空的话,每一句话都会报错,所以这就是为什么要寻找递归的终止条件。这里第二个题的前序遍历的解法涉及到回溯和递归的配合,和第。

2023-03-09 23:56:45 310

原创 代码随想录day14-二叉树(2)

使用递归法只需要换一下顺序即可。

2023-03-09 23:12:44 287

原创 代码随想录day13-二叉树(1)

经过前人的总结,二叉树具有以下几个性质:满二叉树以及完全二叉树的定义以及区别。满二叉树一定是完全二叉树,反之则不一定。满二叉树示意图:完全二叉树示意图:二叉树的顺序存储,指的是使用顺序表(数组)存储二叉树。需要注意的是顺序存储只适用于完全二叉树。换句话说,只有完全二叉树才可以使用顺序表存储。因此,如果我们想顺序存储普通二叉树,需要提前将普通二叉树转化为完全二叉树。堆就是典型的使用顺序表存储的一种完全二叉树。完全二叉树的顺序存储,仅需从根节点开始,按照层次依次将树中节点存储到数组即可。如上面所示的

2023-03-07 23:58:00 149

原创 代码随想录day12-栈与队列(2)

今天的题目涉及到两个知识点,单调队列以及优先级队列,需要好好学习一下二者的性质。

2023-03-07 00:09:35 130

原创 代码随想录day11-栈与队列(1)

栈和队列的基本思想:栈是先进后出(Fisrt in Last out, FILO) 的,而队列是先进先出(Fisrt in Last out, FILO)。栈只有可以被外界访问,所以栈是没有迭代器,也是不支持随机访问的,即栈是不支持遍历操作的。队列只有和可以被外界访问的,同样也是不支持随机访问,没有迭代器。不是容器。栈和队列可以理解为一种思想,而具体的实现通过vector,list以及deque都可以实现。而c++中的stack以及queue只能说是而不是容器,通常使用deque实现。

2023-03-04 23:49:06 147

原创 代码随想录day10-字符串(2)

LeetCode 151 反转字符串中的所有单词本题要求反转字字符串中的所有单词,并且要求我们去除多余的空格,比如连续的空格,前导空格,以及尾随空格等等。我们的第一步应该就是去除多余的空格。然后我们可以观察到,如果我们对字符串整体进行反转,那么得到肯定也可以反转每个单词,但是,单词内部的顺序也被反转了,所以还需要针对每个单词进行局部的反转,就可以得到答案。去除多余的空格;整体反转;局部反转。

2023-03-04 23:47:25 111

原创 代码随想录-day9 哈希表(3) & 字符串(1)

注意这里为什么是从后往前替换,设想一下,假设我们从前往后替换,那么每替换一个,所有的的字符都要往后移动,时间复杂度为O(n^2),但是如果我们从后往前替换,只需要遍历一次字符串即可,时间复杂度为O(n)。本题使用哈希表的方法也试过,最后的去重问题很难考虑清楚,在本文最后把相应的解答过程写一下。另外,这个题的和不是0,所以特殊情况的判定也是需要更改的。其中最重要的不同就是,之前有多个数组,所以在考虑排列的时候,不用考虑重复的情况。在之前的反转链表的时候也使用过双指针的思路来操作,这里依然用的双指针的思路。

2023-03-02 23:58:04 109

原创 代码随想录day8-哈希表(2)

首先使用map来统计nums1中的每个数字出现的次数,然后遍历nums2数组,如果发现其中的值也在nums1中,就将其加到结果中,否则跳过即可,注意匹配过的数字,在nums1中也要相应减1。具体的思路就是,依次遍历数组中的元素,如果target-num不在哈希表中,那么就添加进去,键为num的值,值为num的位置,因为我们map的查找是查找的键。这个题还是求交集,跟之前的那道题目不同的是,这个题要求如果存在重复的元素,也要输出出来,那么这道题就不能使用set来做,因为重复是考虑在我们的里面的。

2023-03-01 23:51:39 176

原创 学习总结-哈希表基础

由于刷到了哈希表的题目,但是之前没接触过哈希表,所以先学习了哈希表的一些基础,但是由于目前的理解有限,本文会不断更新最新的理解。

2023-02-28 23:57:00 61

原创 代码随想录day7-哈希表(1)

上面代码的for(auto& : s)是c++11的新特性,foreach循环遍历,其中auto也是c++11新特性,自动推导类型,使用&是引用传递,防止传递参数过程中进行拷贝。我们可以将strs中的每个元素排序,然后作为键,将没排序的作为值,注意,这个值是vector,因为可能有很多个,而我们最终需要的,也是这一个一个的vector。,这是哈希表中非常经典的一种体型,使用的方法也差不多,需要掌握。前面提到,哈希表的本质就是一个数组,所以我们是可以用数组来实现哈希表的。这个遍历语句,速度更快,更好用。

2023-02-28 23:52:18 125

原创 代码随想录day6-链表(2)

要求删除倒数的第N个结点,我们设置一个先后指针,先指针从正数第N+1个结点出发,后指针从dummyHead出发,这样,当先指针到达nullptr的时候,后指针正好可以到达。**总结:**这两天关于链表的题目稍微做了一些,有一点儿初步的感觉,主要两个点就是双指针以及虚拟头结点,等一刷完成后,再做做这些题,顺便扩展一下其他的题目。知道了这一点之后,就可以开始写代码了。本题最简单的思路就是分别遍历两个链表,获得两个链表的长度,然后将两个链表按照尾巴对齐,然后从短的头部进行遍历,就能得到链表相交的起始结点。

2023-02-28 03:04:54 117

原创 代码随想录day5-链表(1)

本题,一开始cur是虚拟结点,那么cur->next就是我们需要操作的结点,所以while中的条件就是cur->next。反转过后,以前的头结点肯定作为最后一个结点,指向nullptr,所以我们要一开始就弄一个虚拟结点,让它指向nullptr。一般流程就是:定位到需要删除的结点的上一个结点,这里为了表示方便,我们记作pre,删除的操作就是一句话。注意虚拟头结点的使用,当遇到困难了,想想双指针法,以及虚拟头结点的方法,可以解决很多问题。当然,对于c++而言,我们还需要将需要删除的结点删除进行内存的释放。

2023-02-28 02:42:24 120

原创 代码随想录day4-螺旋数组

今天的题目不涉及具体的算法,主要一个模拟的过程,比较考验对代码的掌控能力。主要就是几个螺旋矩阵的题目,此外,我还另外做了一道跟螺旋螺旋十分类似的模拟过程的题目,一起来研究一下吧。

2023-02-23 22:58:58 90

原创 代码随想录day3-长度最小的子数组

如果数组为 1 1 1 1 100, target = 101, 那么当left在第一个1的时候就已经满足105 > 101了,此时得到的子数组长度是5,但是明显最小的字数粗长度是2,所以这种情况就错误了!外层循环遍历数组的每个元素,内层循环从这个元素之后往后面遍历,并累计求和,一旦发现和sum大于target,此时就可以得到这个子数组的长度,不断更新。这里的更新方法很巧妙:我们需要一个最小值,那么我们就设置一个result=很大,这个很大就是int数值类型的上线。我们这里也使用了三目运算符进行更新,

2023-02-22 23:42:59 106

原创 代码随想录day2-移除元素与有序数组的平方

给你一个数组 nums 和一个值 val,你需要移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。这个题目考察的是移除数组中的目标元素,我们一般的思路就是找到并将其删除即可,但是,只能说遇到了目标值,就把它用后面的东西进行覆盖,这也就是的思路。用两层循环就可以实现,外层循环遍历数组,内层循环将开始出现目标值的时候的后面所有元素往前移动。

2023-02-22 23:04:23 80

原创 代码随想录day1-二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。关于这种二分查找的题目,本质上都是可以用暴力方法求解的,就是从头到尾直接遍历就行了。但是随着数据量的增大,暴力算法往往会面临超时的情况,所以需要使用更高效的查找方法。就是一种高效的查找算法。二分查找的难点以及容易混淆的地方主要是两个点,即循环体内部的条件,到底是呢还是呢,以及边界的改变条件是left = mid还是呢?

2023-02-20 21:44:44 174

原创 c++中拷贝构造函数的使用时机以及实例分析

c++中拷贝构造函数的理解

2022-07-18 16:08:33 374

原创 如何在云平台上租用GPU训练神经网络?

  刚入门机器学习,跟着一些博主训练了几个卷积神经网络,使用的比较小的数据集,但在CPU训练神经网络的速度可以说是龟速,一个3000多张图片的数据集都要训练十几分钟。  最近我也把自己毕业设计需要的数据集制作完成了,训练集图片数量大概有13w张,验证集差不多2w张,用CPU训练根本是不可实现的。除了更换GPU显卡,我还在网上了解到可以在云平台上租用GPU来训练自己的神经网络,经过几天的摸索,终于掌握了其中一个云平台的使用方法,特来分享。一、云平台的选取与注册  通过网上查找,现在使用比较多的云平台主要

2021-04-17 12:06:51 8895 11

原创 AMD显卡如何用Anaconda安装pytorch

毕设题目是人工智能相关的题目,需要安装pytorch。经过多次失败,终于安装成功了,特来分享一下经验。 **step1:** Anaconda的安装 首先进入官网[Anaconda下载官网](https://www.anaconda.com/products/individual#Downloads),如图所示,根据自己的系统及配置下载合适的版本。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210306133120885.png?x-o...

2021-03-06 14:52:34 20618 41

空空如也

空空如也

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

TA关注的人

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