- 博客(179)
- 收藏
- 关注
原创 代码随想录——另一棵树的子树(Leetcode572)
这是一种最朴素的方法——深度优先搜索枚举 root 中的每一个节点,判断这个点的子树是否和 subRoot 相等。如何判断一个节点的子树是否和 subRoot 相等呢,我们又需要做一次深度优先搜索来检查,即让两个指针一开始先指向该节点root 和 subRoot 的根,然后「同步移动」两根指针来「同步遍历」这两棵树,判断对应位置是否相等。
2024-05-18 09:07:48 255
原创 代码随想录——填充每个节点的下一个右侧节点指针 II(Leetcode117)
【代码】代码随想录——填充每个节点的下一个右侧节点指针 II(Leetcode117)
2024-05-16 07:57:12 131
原创 代码随想录——简化路径(Leetcode71)
由于 StringBuilder是一种可变的字符序列,它的特点是可以在末尾追加字符,而不需要像数组那样进行复杂的逆序操作。因此,我们不需要对 sb 进行反转操作。例如,如果栈 st 的元素顺序是 [“dir1”, “dir2”, “dir3”],那么在遍历栈并将元素追加到 sb 时,sb的内容将依次是 “/dir1/dir2/dir3”,这正是我们想要的结果。简而言之,由于 StringBuilder 的特性以及栈的顺序,我们不需要额外的反转操作来得到正确的路径字符串。为什么输出sb不需要reverse。
2024-05-08 09:28:08 360
原创 代码随想录——删除字符串中的所有相邻重复项(Leetcode1047)
在上述代码中,stack 是一个 StringBuffer 对象,它被用来按照字符添加的顺序来存储字符,但是去除重复的字符。当我们在遍历原始字符串 s 并检查每个字符是否已经存在于栈中时,我们只是简单地将新字符添加到栈顶,或者如果栈顶已经有了这个字符,我们就从栈中删除这个字符。所以,在这个特定的算法中,我们不需要调用 reverse() 方法来反转 stack,因为算法的设计确保了最后的结果字符串会按照正确的顺序生成。我们只关心栈顶元素,而在去除重复字符的过程中,栈顶元素始终保持是我们最后添加的字符。
2024-04-29 08:36:06 368
小兔鲜儿商城web端vue3+js项目
2024-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人