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

原创 代码随想录 Day15

综上,使用 反转二叉树 后,判断前后两颗树是否相同,进而判断二叉树是否对称,在思路上是可行的,但是判断二叉树是否相同需要自定义函数。比较重要的点在于,通过控制length的长度,使用for _ in range(length)来遍历所有的deque列队。比较两个二叉树对象将会比较它们的内存地址,而不是它们的内容。copy.copy() & copy.deepcopy() & 直接赋值的区别。运算符比较两个自定义的复杂对象(如二叉树)时,默认行为是调用对象的。对于一颗二叉树,就属于是可变对象,同时还有嵌套。

2024-05-26 19:58:53 353

原创 Day14 二叉树

此处,我们希望stack为空时停止,但是不希望第一次就停止。同时,自己写的时候容易犯一个问题,对于从栈中弹出的元素重新获取左侧元素,这会导致重复与死循环。以上两种写法都可以写成闭包的。***看起来简单,实际上写起来容易漏洞百出***使用栈来实现想要的过程。# 二叉树的非递归遍历。# 二叉树的递归遍历。# 二叉树的统一迭代。标记法,了解思路即可。

2024-05-26 00:52:05 248

原创 代码随想录 Day16

1. 判断子树是不是满二叉树,如果是,那就可以直接计算得到所有左右子节点数。则使用后续遍历方式,获取左、右子树个数,完全遍历并记录。1. 完全二叉树的子树可以更容易判断出是不是满二叉树。leetcode 222. 完全二叉树的节点个数。leetcode 111. 二叉树的最小深度。# 思路2:使用完全二叉树和满二叉树的特性。2. 如果有一个不是,那就拆开成左右两个。2. 满二叉树节点计算:2^n - 1。# 思路1:当作普通的二叉树来解决。时间复杂度为:O(n)

2024-05-25 01:45:30 131

原创 代码随想录day8

思路:双指针(左右,向中间)

2024-05-16 03:56:16 138

原创 代码随想录 day7

学习:all()函数的使用,all(条件 for i in range(xx)), 当全部条件成立时,返回True。i是从k+1开始的,不是在sum3中从1开始的。思路:纯字母,使用list,不需要额外构建hashlist。思路:使用双指针的思想,限定条件为:去重;容易写错的点是判断i的遍历范围,以及i的去重。和三数之和一样,最重要的思想为:减枝、去重。特点:可以重复,不需要去重;

2024-05-14 18:14:27 181 2

原创 代码随想录 day6

技巧:dict.get(each, 0) + 1。

2024-05-14 00:44:53 131 1

原创 代码随想录day4

思路:# 常规操作1. 首先链表为空,链表只有一个:返回自己即可2. 设置虚拟头节点,简化流程# 开始迭代反转链表需要:前面的节点,现在的节点,后面的节点;反转完后,更新前面的节点,现在的节点,后面的节点。何时结束循环:现在的节点不存在(偶数个nodes会遇到)/后面的节点不存在(奇数个nodes会遇到)时,就停止。

2024-05-13 18:50:21 271

原创 代码随想录 day3

如果没有虚拟头节点,需要做两件事。第一件:删掉开头数值为val的节点;第二件:如果头节点为空,cur.next会报错。(通过 while cur and cur.next 来避免)。2. 如果要找到最后一个节点,然后进行《区别与前面》的处理,则使用while head.next;1. 如果要获取head.next.val, 那么必须使用while head.next。这样,锁定最后一个后,下一步开始进行其他操作。这道题目,需要掌握两种方法:递归(更加重要),迭代。所以,设置虚拟头节点是最好的。

2024-05-13 17:08:41 163

原创 代码随想录 day2

day2#977 有序数组的平方使用双指针解决class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: length = len(nums) left, right = 0, length -1 result = [] while left <= right: if abs(nums[left])

2024-05-12 22:13:59 123 1

原创 代码随想录day1

要点:low <= high中,等号必须要有。否则在low = high的特殊情况下,会漏掉正确的结果。难点在于:列表中,删除元素时,只能一个个向前覆盖。

2024-05-11 17:15:37 169

空空如也

空空如也

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

TA关注的人

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