自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初识KMP算法

对KMP算法的一点理解

2025-03-17 21:10:54 236

原创 代码随想录第13天 | 二叉树

顺序存储(略)链式存储int val;

2025-02-22 15:31:21 679

原创 代码随想录算法训练营第11天 |150.逆波兰表达式求值、239.互动窗口最大值、347.前k个高频元素

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。给定逆波兰表达式总是有效的。每个运算对象可以是整数,也可以是另一个逆波兰表达式。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。给定一个非空的整数数组,返回其中出现频率前 k 高的元素。根据 逆波兰表示法,求表达式的值。返回滑动窗口中的最大值。

2025-02-17 10:47:38 373

原创 代码随想录算法训练营第10天 | 232.用栈实现队列、225.用队列实现栈、20.有效的括号、1047.删除字符串中所有相邻重复的项

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。push(x) -- 将一个元素放入队列的尾部。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。pop() -- 从队列首部移除元素。

2025-02-13 11:18:31 382

原创 代码随想录算法训练营第九天 | 151.翻转字符串里面的单词、右旋转字符串、28.实现strStr()

给定一个字符串,逐个翻转字符串中的每个单词。示例 1: 输入: "the sky is blue" 输出: "blue is sky the"示例 2: 输入: " hello world!" 输出: "world!hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3: 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

2025-02-03 20:03:07 523

原创 代码随想录算法训练营第八天 | 344.反转字符串、541、反转字符串II、54.替换数字

给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。示例 2: 输入:["H","a","n","n","a","h"] 输出:["h","a","n","n","a","H"]示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"]例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。

2025-01-30 21:50:34 709

原创 代码随想录算法训练营第七天 |454.四数相加II 、383. 赎金信 、 15. 三数之和 、 18. 四数之和

先遍历nums1和nums2,求出两个数组中元素的和sum1=(nums1 [ i ] +nums [ j ] )以及和出现的次数value,放进集合中,然后再遍历nums3和nums4,求出sum2=0 -(nums3 [ k ]+nums[ l ] ),并用哈希表来查找这个和是不是在集合中,如果在集合中,计数器count就加上集合中和的对应的value,最后返回count值即可。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]

2025-01-30 21:22:43 579

原创 代码随想录算法训练营第六天|242.有效的字母异位词、349. 两个数组的交集、202题. 快乐数、1. 两数之和

std::set和std::multiset的底层实现都是红黑树,而std::unorderedset的底层是哈希表,orderedset的读写效率是最高的,并不需要对数据进行排序, 而且还要让数据不重复(unorderedset会对数据进行自动去重)std::unordered_set底层实现为哈希表,std::set 和std::multiset 的底层实现是红黑树,红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。

2025-01-16 22:11:58 867

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

我们先定义两个指针,一个慢指针slow,一个快指针fast,开始时先让两个指针同时指向dummyhead,然后让fast指针先走n步,然后快慢指针同时移动,当fast指针移动到链表的最后一个节点时,slow指向的节点就是我们要删除的节点.我们定义一个快指针和一个慢指针,快指针每次走两个节点,慢指针每次走一个节点,如果该链表有环的话,那么快慢指针一定会在环里面相遇,因为快指针相对于慢指针是以每次移动一个节点的速度去慢慢靠近慢指针,所以快指针不会直接跳过慢指针.快指针路程=X+n(Z+Y)+Y。

2025-01-14 22:26:03 372

原创 代码随想录算法训练营第三天 | 203.移除链表元素、206.翻转链表、707.设计链表

这道题让我们将链表的顺序反转一下,即如果原来是A->B->C->D,那么反转过后就是D->C->B->A\。如果新建一个链表来存储反转过后的数据的话过于浪费空间,我们用双指针来解决这个问题.

2025-01-13 22:27:51 287

原创 代码随想录算法训练营第二天| 209长度最小子数组、59.螺旋矩阵II、58. 区间和、44.开发商购买土地

使用for循环来移动窗口的结束位置,当窗口内包含的数据之和>=target时,我们就需要减小窗口的长度,即移动窗口的起始位置(这里使用了while循环来完成这一操作)。这里,我们引入前缀和的思想,即:使用另外的数组sum[ n ] ,sum[ i ] 表示原数组array中从array[ 0 ]到array[ i ]的数据之和。首先定义 i 表示窗口的起始位置,j 表示窗口的终止位置,sum1表示窗口所包含的数据之和,sLen表示窗口的当前长度,resultLen表示窗口的最终长度。

2025-01-12 14:59:03 312

原创 代码随想录算法训练营第一天 | 704. 二分查找 、 27. 移除元素、977.有序数组的平方

首先明确一点,在数组中删除一个元素并不是真正的将那个元素所占用的存储空间删除了,而是进行了数据的覆盖,即:将这个要删除元素后面的元素依次往前移动一位。这种就是传统的暴力算法,通常需要使用嵌套循环来实现。二分查找最重要的是要确定区间,例如[ left ,right ](左闭右闭)[ left , right )(左闭右开).......3.当要在数组中进行删除或者添加元素时,需要对数组中的其他元素进行整体移动。而使用双指针则可以一次遍历就完成所有操作。2.数组的下标是从0开始的。

2025-01-09 15:53:25 137

原创 辗转相除法求两个数的最大公约数

【代码】辗转相除法求两个数的最大公约数。

2023-10-31 12:01:51 76 1

原创 求助!!!

学校发的作业,想了半天实在是不会做,特来请教各位!

2023-10-03 19:37:18 66

空空如也

空空如也

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

TA关注的人

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