自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树LeetCode

给定一个二叉树,判断它是否是高度平衡的二叉树。注意:这里要用先序遍历,而且要有回溯过程。,返回所有从根节点到叶子节点的路径。给你一个二叉树的根节点。,返回所有左叶子之和。

2023-12-15 17:18:27 20

原创 二叉树LeetCode

这道题其实就是将每一个节点的左右节点交换,其实质就是将所有节点遍历一遍并且进行交换操作。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历),翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

2023-12-13 15:07:07 21

原创 栈与队列LeetCode

在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。给出由小写字母组成的字符串。,判断字符串是否有效。

2023-12-10 11:47:10 28 1

原创 day07-字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。、使用 O(1) 的额外空间解决这一问题。不要给另外的数组分配额外的空间,你必须。,从字符串开头算起,每计数至。

2023-12-06 21:17:58 23 1

原创 day06-哈希表LeetCode

最先考虑能不能用空间换时间,这时候我想到了哈希表,将两个数组的元素一次相加存到一个哈希表中,再将后两个相加的相反数在表中查询,但是我们显然不能用set,或者unordered_set,这两个都不允许出现重复元素,所以要用multiset。但是很遗憾,还是超时了,这里我又想到multiset储存不同元素是存在不同位置的,而且count()方法效率太低,并且multiset元素是有序的插入效率也比较低,这时候就要用到unordered_map<key,value>用value来记录出现的次数。

2023-12-05 20:52:51 15

原创 day05-哈希表LeetCode

空间复杂度应该写成O(1)常数级,但是为了理解写成上面这样。输出结果中的每个元素一定是。时间复杂度(n)空间复杂度(n),编写一个函数来判断。

2023-12-04 20:15:19 32

原创 day04-链表LeetCode

想要做好本题最重要的就是想好要标记那几个节点,假如有1,2,3,4四个节点我们就需要保存1前面的节点,1节点,2节点,因为如果不保存1前面的节点在下一次循环时前面的节点会丢失后面的节点,但是如何表示1前一个节点呢,这里就要引入虚拟头结点,在头结点前设置一个虚拟头结点这样可以更好的操作。因为要删除倒数第n个节点,我们只用使用双指针(快慢指针)法就行,让快指针先走n步,再让慢指针走,这样快指针走到最后慢指针就是倒数第n个,但我们还是要让慢指针停到要删除的指针的前一个方便删除操作。个结点,并且返回链表的头结点。

2023-12-02 18:25:38 33 1

原创 day03-链表基础LeetCode

思路我们使用cur记录当前节点,我们要使当前节点指向前一节点,这时候我们要引入pre前驱节点,当我们cur->next=pre后发现原本的cur->next丢失了,所以我们还要引入一个suc后继结点。这里主要注意删除头结点与删除其它节点的方法不同,还要注意的是释放空间,C/C++没有自动内存管理,所以要手动删除养成好习惯,防止内存泄露。时间复杂度 O(n) 空间复杂度O(1)时间复杂度 O(n) 空间复杂度O(n)时间复杂度 O(n) 空间复杂度O(1),请你反转链表,并返回反转后的链表。

2023-12-01 19:47:04 21 1

原创 day02-双指针-滑动窗口LeetCode习题

因为时间复杂度较高想要降低时间复杂度为O(n)级别,因为没有排序满足要求所以要换一个思路,这里选择用空间换时间引入一个结果集,因为如果元素是全是正数那么不需要排序,所以是负数元素影响了顺序,而负数越小那么平方越大所以只用比较最左边的元素平方和最右边元素平方的大小把大的放入结果集最后面即可这里可以容易地想到使用双指针。最简单的思路,就地将数组元素平方然后进行排序,但是时间复杂度是排序的时间复杂度这里用的是C++提供的快速排序,时间复杂度O(nlogn),空间复杂度O(1)个正整数的数组和一个正整数。

2023-11-30 18:15:11 60

原创 day01-二分查找,双指针

二分查找是一种基础的算法,虽然写过很多次但是对于区间的选取并没有过多的注意,下意识地写的都是取[l,r],并没有尝试过[l,r)题目描述不能用额外空间,显然要使用当前数组,并且要求把目标元素移到数组最后面所以使用双指针(快慢指针)

2023-11-29 20:49:26 36 1

空空如也

空空如也

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

TA关注的人

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