自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录第14天|二叉树| ● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代

树,是一种基础的数据结构。一棵树的子节点数量最大为2(度为2)的树称为二叉树。二叉树的非层次遍历的迭代写法,基于栈实现(层次遍历基于队列实现)二叉树的非层次遍历包括前序遍历,中序遍历,后序遍历。

2023-12-13 23:14:49 18 1

原创 代码随想录第13天|栈与队列part03| ● 239. 滑动窗口最大值● 347.前 K 个高频元素

思路:**前k元素——堆排序!(即优先队列)**使用小顶堆,不断弹出频率最小的元素,留下频率最大的元素。思路:使用队列控制长度,依次通过进队出队,实现滑动窗口。那么怎么判断窗口最大值呢?的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口每次只向右移动一位。,请你返回其中出现频率前。题目:给你一个整数数组。题目:给你一个整数数组。

2023-12-13 23:14:18 20 1

原创 代码随想录第11天|栈与队列part02|● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值

栈的常见题型:括号匹配,逆波兰表达式

2023-12-13 19:51:44 17 1

原创 代码随想录第10天|栈与队列part01| ● 理论基础● 232.用栈实现队列● 225. 用队列实现栈

我们知道C++的STL版本主要有三个,HP STL,P,J.Plauger STL,SGI STL。其中SGI STL版本为开源软件,栈基于deque为底层结构,队列也是基于deque为缺省情况下的底层结构。题目:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(思路:一个队列不是可以实现栈嘛!用于暂存和备份功能。题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(其次就是出入顺序:栈先进后出,队列先进先出。将元素 x 压入栈顶。移除并返回栈顶元素。

2023-12-12 22:29:46 23

原创 代码随想录第九天|字符串part02| 28. 实现strStr,459.重复的子字符串

思路: 字符串可以有子串重复两次,则返回true。那么:将s重复两次为ss,去除首尾两个字符,即破坏了两个子串,再进行判断——是否s为重复后ss的子串即可。字符串的第一个匹配项的下标(下标从 0 开始)。,检查是否可以通过由它的一个子串重复多次构成。题目:给定一个非空的字符串。题目:给你两个字符串。

2023-12-12 18:30:16 14

原创 代码随想录第八天|字符串| 344. 反转字符串,541.反转字符串II,卡码网:54.替换数字, 151.翻转字符串里的单词,卡码网:55.右旋转字符串

题目:给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。题目:字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

2023-12-11 23:24:49 16 1

原创 代码随想录第七天|哈希表| 454. 四数相加二,383.赎金信,15. 三数之和,18.四数之和

思路:四个数组,可以分成两组进行哈希相加。请你找出并返回满足下述全部条件且。思路:排序后使用双指针,去重。

2023-12-10 22:50:17 21 1

原创 代码随想录第六天|哈希表| 242. 有效的字母异位词,349.两个数组的交集,202. 快乐数,1.两数之和

进阶解法:哈希表,以当前数为基数,查找符合的元素(哈希表查找复杂度O(1),因此使用哈希表存储可以达到空间换时间)你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。中每个字符出现的次数都相同,则称。输出结果中的每个元素一定是。题目:编写一个算法来判断一个数。​ **注意:**若。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,编写一个函数来判断。题目:给定一个整数数组。题目:给定两个字符串。,请你在该数组中找出。

2023-12-04 22:49:49 18

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

题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。(2)修改指向(绿色部分):先pre指向nex,再使now指向nex的后继结点,最后使nex指向now,完成相邻两个结点的翻转。(1)初始化指针(黑色部分):令pre指向前驱结点,now指向中间结点,nex指向now的后继结点(思路:引入虚拟头结点(不含数据域),每两个结点进行翻转,注意链表指针修改的顺序。思路:第一:链表的遍历,第二:链表的结点删除。

2023-12-03 18:15:10 23

原创 代码随想录第三天|链表理论基础|203. 移除链表元素,707.设计链表,206.反转链表

链表,基础数据结构之一,采用指针的方式维护前后结点,每个结点内部保存数据。优点是便于增删改,缺点就是不支持随机访问。

2023-12-01 23:20:33 17

原创 代码随想录算法训练营第二天|977. 数组的平方、27.长度最小的数组、59螺旋矩阵二

除了对普通的快速排序进行优化,它还结合了插入排序和堆排序。根据不同的数量级别以及不同情况,能自动选用合适的排序方法。”,就可以开辟一个新的数组,从大到小排列,而双指针用来刷新原数组中指向的元素位置。这里有个疑问:因为题目的进阶算法要求时间复杂度为O(n),那么sort的复杂度是多少?**进阶思路:**数组已经非递减,在平方后可能出现先减后增的情况,依然呈现规律性,“解题思路:不断循环n*n次,然后控制边界收缩,遍历完整个螺旋矩阵即可。**如果不存在符合条件的子数组,返回。组成的新数组,要求也按。

2023-11-30 23:11:06 23

原创 代码随想录第一天|数组理论基础|704. 二分查找,27. 移除元素

来自卡哥训练营的真蒟蒻,系统刷题准备春招了,奥力给!

2023-11-29 11:57:14 48

空空如也

空空如也

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

TA关注的人

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