自定义博客皮肤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)
  • 收藏
  • 关注

原创 linux基础(2)

vim\vi是linux中最经典的文本编译器同图形化界面中的文本编译器是一样的,vi是命令行下对文本文件进行编辑大的绝佳选择。

2023-09-17 13:07:37 570 2

原创 【linux基础(1)】

1.命令行:即linux终端,是一种命令提示符页面,以纯字符的形式操作系统,可以使用各种字符化命令对系统做出操作指令。2.命令:一个命令就是一个linux的程序,命令没有图形页面化,可以在命令行提供字符化的反馈。3.命令输入的格式命令+选项+参数(对象)命令本体:即命令本身可选选项:控制命令的行为细节可选参数:控制命令的指向目标我们可以通过cd命令来改变当前所在的工作目录cd命令的全称为change directory语法为:cd [ linux路径 ]

2023-09-08 11:49:23 375 5

原创 【算法刷题-栈与队列篇】

所以大家经常说的大顶堆(堆头是最大元素),小顶堆(堆头是最小元素),如果懒得自己实现的话,就直接用priority_queue(优先级队列)就可以了,底层实现都是一样的,从小到大排就是小顶堆,从大到小排就是大顶堆。为了满足栈的特性,即最后入栈的元素最先出栈,在使用队列实现栈时,应满足队列前端的元素是最后入栈的元素。用两个队列que1和que2实现队列的功能,que2其实完全就是一个备份的作用,把que1最后面的元素以外的元素都备份到que2,然后弹出最后面的元素,再把其他元素从que2导回que1。

2023-09-03 13:19:14 568 5

原创 【算法刷题-双指针篇】

如果赋值过来的元素恰好也等于 val,可以继续把右指针 right 指向的元素的值赋值过来(左指针 left指向的等于 val的元素的位置继续被覆盖),直到左指针指向的元素的值不等于 val 为止。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。接下来如何移动left 和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。

2023-08-30 16:20:21 462 9

原创 【算法刷题之字符串篇】

如果二者相等,表示在拼接后的字符串中,只有一个出现位置,即没有重复的子字符串。如果不相等,表示在拼接后的字符串中存在多个子字符串的出现位置,即存在重复的子字符串。*如果字符a是空格字符,并且 word 字符串非空,说明一个完整单词结束了,将 word 字符串压入栈 s1 中,并重置 word 为空字符串。3.当找到一个可能的重复子字符串长度i后,判断原字符串是否可以被i整除(即n%i==0),如果可以整除,则继续判断是否存在重复子字符串的情况。1.将原字符串s与自身进行拼接,得到一个新的字符串。

2023-08-28 15:09:43 520 9

原创 【KMP算法-代码随想录】

说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP。KMP(Knuth-Morris-Pratt)算法是一种字符串匹配算法,用于在一个主文本字符串中查找一个模式字符串的出现位置。它的核心思想是避免在匹配过程中反复回溯主文本中的位置,从而提高匹配效率。

2023-08-27 09:53:20 1039 10

原创 【算法刷题之哈希表(2)】

数组作为哈希表在242.有效的字母异位词 (opens new window)中,我们提到了数组就是简单的哈希表,但是数组的大小是受限的!这道题目包含小写字母,那么使用数组来做哈希最合适不过。在383.赎金信 (opens new window)中同样要求只有小写字母,那么就给我们浓浓的暗示,用数组!

2023-08-25 14:26:06 1027 9

原创 【算法刷题之哈希表篇(1)】

由于字符串只包含 26个小写字母,因此我们可以维护一个长度为 26 的频次数组 table,先遍历记录字符串 s 中字符出现的频次,然后遍历字符串 t,减去 table中对应的频次,如果出现 table[i]<0,则说明 t 包含一个不在 s 中的额外字符,返回 false 即可。在遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素。输出结果中的每个元素一定是 唯一 的。

2023-08-24 13:12:17 484 9

原创 【C++/C 实现球球大作战】

1.操作方式:使用键盘控制球体的移动,如W、A、S、D 或者 上、下、左、右方向键。2.玩法:玩家控制的球体通过键盘控制进行移动,可以朝不同的方向移动以吞噬其他球体。球体可以通过碰撞来吞噬其他较小的球体,从而增大自己的体积。

2023-08-23 14:23:11 3298 11

原创 【算法刷题之数组篇(2)】

请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。如果我们按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的。加1,表示上边界收缩。3.如果当前区间的左端点在数组 merged 中最后一个区间的右端点之后,那么它们不会重合,我们可以直接将这个区间加入数组 merged 的末尾;4.否则,它们重合,我们需要用当前区间的右端点更新数组 merged 中最后一个区间的右端点,将其置为二者的较大值。在循环中,首先从左到右输出上边界的元素,每输出一个元素,

2023-08-21 16:50:40 1043 6

原创 【算法刷题之数组篇(1)】

nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。2.例如 nums=[3,1,2,3,3,3,3],target=2,首次二分时无法判断区间 [0,3][0,3][0,3] 和区间 [4,6][4,6][4,6] 哪个是有序的。1.对于数组中有重复元素的情况,二分查找时可能会有 a[l]=a[mid]=a[r],此时无法判断区间 [l,mid] 和区间 [mid+1,r] 哪个是有序的。

2023-08-20 22:22:16 837 10

原创 【算法刷题之链表篇(2)】

由于输入的两个链表都是有序的,所以不管哪个链表是非空的,它包含的所有元素都比前面已经合并链表中的所有元素都要大。当 l1 和 l2 都不是空链表时,判断 l1 和 l2 哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将对应链表中的节点向后移一位。1.如果链表中至少有两个节点,则在两两交换链表中的节点之后,原始链表的头节点变成新的链表的第二个节点,原始链表的第二个节点变成新的链表的头节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。

2023-08-19 14:30:29 935 11

原创 【算法刷题之链表篇(1)】

根据栈「先进后出」的原则,我们弹出栈的第 n 个节点就是需要删除的节点,并且目前栈顶的节点就是待删除节点的前驱节点。给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。2.当first走完,在定义一个second指针,此时两指针一起走,当first走到尾部时,second就走到了要删掉的节点的前一位。给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表。

2023-08-18 16:40:30 868 18

原创 【C++ STL之string,tuple,array详解】

在C++的STL(Standard Template Library)中,std::string是一个非常有用的字符串类。它提供了一系列操作字符串的功能,包括字符串的创建、修改、查找、拼接等。本文将详细介绍C++ STL中std::string的使用方法和一些常见操作。在C++的STL(Standard Template Library)中,std::tuple是一个非常有用的模板类。它提供了一种将多个值组合在一起的方式,类似于一个元组。

2023-08-17 15:56:21 1184 14

原创 【C++ STL之map,set,pair详解】

在C++的STL(Standard Template Library)中,map是一个非常有用的关联容器。它提供了一种键-值对的数据结构,其中的元素按照键的顺序进行排序,并且每个键是唯一的。本文将详细介绍C++ STL中map的使用方法和一些常见操作。在C++的STL(Standard Template Library)中,set是一个非常有用的关联容器。它提供了一种有序集合的数据结构,其中的元素按照键的顺序进行排序,并且每个键是唯一的。本文将详细介绍C++ STL中set的使用方法和一些常见操作。

2023-08-16 12:49:39 1278 6

原创 【C++ STL之队列和栈详解】

在C++的STL(Standard Template Library)中,stack(栈)是一个非常有用的容器适配器。它提供了一种后进先出(LIFO)的数据结构,类似于现实生活中的堆栈。本文将详细介绍C++ STL中stack的使用方法和一些常见操作。在C++的STL(Standard Template Library)中,queue(队列)是一个常用的容器适配器。它提供了一种先进先出(FIFO)的数据结构,类似于现实生活中的排队。本文将详细介绍C++ STL中queue的使用方法和一些常见操作。

2023-08-15 10:35:27 2658 6

原创 【C++ STL之vector超详解】

vector为可变长数组(动态数组),用于实现动态数组,它提供了动态大小的数组功能,并提供了一些方便的操作和函数来管理数组中的元素。

2023-08-14 21:52:41 921 3

原创 【C++指针超详解】

因为在这段代码中,虽然函数 fun 中修改了指针 p 的值,使其指向了一个局部变量 b 的地址,但在函数 fun 结束后,b 的生命周期也结束了,它所占用的内存会被释放。而在添加删除结点的过程中,我们并没有改变函数参数指针的指向,而是通过传入的指针如Node *head,找到要删除结点的位置,并未对该指针做改变,因此退出函数后,该指针无影响。数组有若干个元素组成,每个元素都有相应的地址,通过取地址运算符&可以得到每个元素的地址,数组的地址就是这一整块存储空间中,第一个元素的地址即a[0]

2023-08-13 14:02:25 1083 9

原创 【C++扫雷小游戏】

尝试挑战经典的扫雷游戏,用C++实现自己的版本扫雷,这个经典的休闲益智游戏,曾陪伴许多人度过无数时光。玩家需要根据已翻开的方块上的数字,推断出隐藏在方格中的地雷位置,然后用标记或者揭开其他方块的方式逐渐清理出安全的区域。通过逻辑推理与快速反应,玩家能够体验到紧张刺激以及智慧的成就感。

2023-08-12 13:45:58 1274 7

原创 c++【数据结构】 八大排序

在计算机科学中,排序算法是最重要的算法之一。排序算法可以将一组无序的数据按照一定的规则重新排列,使其变为有序的数据集合。排序算法的应用十分广泛,它们在计算机科学、数据结构、数据库、人工智能、机器学习等领域都扮演着重要的角色。本文将介绍C++/C语言中的八大排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序。这些排序算法各有优缺点,选择合适的算法可以优化程序效率,提升算法的性能。

2023-08-10 23:58:39 1080 9

空空如也

空空如也

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

TA关注的人

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