- 博客(12)
- 收藏
- 关注
原创 二叉树专题
笨方法是先吧链表转化成有序数组,之后就是108题一模一样了。但是这么做肯定不是最优解,但是时间复杂度应该是很低了。,但是官方解答中上面的代码为了优雅一些可能,多走了下面连个dfs两次,所以造成了很多人误解。上面的代码其实不是很好理解,因为安扎去哦正常的回溯,满足条件之后可以直接。这个就完全没有任何的规律,只有不断地试。BFS版本上面两道题代码一模一样。要充分利用二叉搜索树的特性。要使用逆向的中序遍历。
2023-03-21 21:59:31
124
原创 【LeetCode热题100】
LeetCode热题10022. 括号生成(🎂)76. 最小覆盖子串(🎂)15. 三数之和(🎂)105. 从前序与中序遍历序列构造二叉树(🎂)56. 合并区间(🎂)200. 岛屿数量105. 岛屿的最大面积463. 岛屿的周长(🎂)827. 最大人工岛(🎂)239. 滑动窗口最大值17. 电话号码的字母组合75. 颜色分类79. 单词搜索32. 最长有效括号(🎂)33. 搜索旋转排序数组(🎂)39. 组合总和48. 旋转图像(🎂)64. 最小路径和70. 爬楼梯72. 编辑距离(🎂 原问题很简单,注意变体,
2023-03-20 19:34:38
561
原创 解决ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found
bug
2022-10-20 10:54:44
841
原创 【日常】2022年4月25日 - 2022年5月1日
日常刷题23. 合并K个升序链表(Hard)23. 合并K个升序链表(Hard)# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeKLists(self, lists: List[Optional[
2022-05-02 23:00:18
394
原创 【日常】2022年4月19日 - 2022年4月25日
日常刷题821. 字符的最短距离(Easy)230. 二叉搜索树中第K小的元素(Medium)821. 字符的最短距离(Easy)4月19号的每日一题。一道简单题。做法1:遍历每一个位置i,然后在i处定义两个指针left,rightleft, rightleft,right,两个指针同时向左右移动,当其中一个到头的时候,只移动另一个。直到两个指针中至少有一个指向的字符为目标ccc。想法很简单,复杂度很高。为O(n2)O(n^2)O(n2)class Solution: def shorte
2022-04-20 10:11:21
115
原创 【日常】2022年4月11日 - 2022年4月18日
日常刷题剑指 Offer II 105. 岛屿的最大面积114. 二叉树展开为链表113. 路径总和 II129. 求根节点到叶节点数字之和剑指 Offer II 105. 岛屿的最大面积比较简单的一道题,和之前那个求岛屿数量的差不多,都是同样的递归,但是求最大面积需要记录每隔岛屿的面积,然后求最大。这里递归有两种写法。本质上差不多。class Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
2022-04-12 13:47:41
230
原创 【日常】2022年4月4日 - 2022年4月10日
2022年4月4日 - 2022年4月`在这里插入代码片`10日72. 编辑距离(Hard)53. 最大子数组和(Easy)72. 编辑距离(Hard)编辑距离算是动态规划里面难度比较高的一道题了,但是也并不是很难,只要知道了思路。class Solution: def minDistance(self, word1: str, word2: str) -> int: # if not word1: return len(word2) # if not w
2022-04-05 23:49:24
270
原创 【日常】2022年3月28日 - 2022年4月3日
日常刷题49. 字母异位词分组(Medium)49. 字母异位词分组(Medium)判断两个词是不是字母异位词最简单的方法就是排序,字符串是可以排序的,排序返回的是一个list。当然也可以使用哈希表判断每一个词出现的个数,这也时间复杂度会低,但是代码显得麻烦。本题是要把所有的字母异位词放到一起,最暴力的方法就是两层循环,每次比对两个字符串,对他们进行排序,看看一样不一样,一样的话说明属于同一个字母异位词。这样做最好不要使用for循环,因为for循环需要从头遍历到尾,内存循环可能会提前将后面的一个词归于
2022-03-29 00:04:29
84
原创 【日常】2022年3月21日 - 2022年3月27日
二叉树700. 二叉搜索树中的搜索98. 验证二叉搜索树530. 二叉搜索树的最小绝对差501. 二叉搜索树中的众数700. 二叉搜索树中的搜索传送门比较简单,递归和迭代都可以。class Solution: def searchBST(self, root: TreeNode, val: int) -> TreeNode: if not root: return None if root.val == val: return root
2022-03-22 00:00:05
483
原创 【周赛】第285常周赛
第285常周赛6027. 统计数组中峰和谷的数量6028. 统计道路上的碰撞次数6029. 射箭比赛中的最大得分6030. 由单个字符重复的最长子字符串6027. 统计数组中峰和谷的数量第一题其实不算难,但是我写的解法还是很low,虽然复杂度不算特别高,但是代码还是很冗余,不过居然也不是特别耗时,只需要40ms,15mb内存。思路也很简单,就是遍历,每次找到左边最近的不相等的数和右边最近的一个不相等的数。找到之后,比较一下,看看是峰还是谷。但是如果这个峰/谷不止一个数字,比如12221,此时只有一个
2022-03-20 21:12:21
148
原创 【双周赛】第74场双周赛
第74场双周赛6020. 将数组划分成相等数对6021. 字符串中最多数目的子字符串6022. 将数组和减半的最少操作次数6023. 用地毯覆盖后的最少白色砖块6020. 将数组划分成相等数对第一题很简单,不到一分钟就可以做出来了。思路就是统计每一个数字出现的次数,只有所有数字都出现过偶数次,才满足要求。class Solution: def divideArray(self, nums: List[int]) -> bool: # 判断数组是否每一个数字都出现过偶数次
2022-03-20 19:55:09
663
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人