leetcode
刷题
QxXyY
这个作者很懒,什么都没留下…
展开
-
topk大根堆
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: def adju_max_heap(nums_list, in_node): # 从当前内部节点处修正大根堆 """"in_node是内部节点的索引""" l, r, large_idx= 2*in_node+1, 2*in_node+2, in_node # 最大值的索引默认为原创 2022-04-21 03:28:18 · 259 阅读 · 0 评论 -
二叉树总结
1.DFS的三种遍历顺序,特点2.BFS遍历使用两端队列(collections.deque())可以不占用额外空间,每层遍历删除头元素,将下一层子节点加入队尾3.考虑左右子树分治如最大深度=max(左子树最大深度,右子树最大深度)平衡二叉树:左子树平衡 and 右子树平衡 and 左右子树深度差<1重建二叉树:重建左子树+重建右子树4.注意搜索树的性质(左<root<右)搜索树考虑中序遍历:结果升序5.某节点路径、回溯问题,可以使用hash表储存父节点与子节点的指向关系原创 2022-02-25 03:41:07 · 502 阅读 · 0 评论 -
递归、分治·、快排及归并排序
添加链接描述原创 2021-12-05 14:43:16 · 102 阅读 · 0 评论 -
leetcode链表总结
1.Python暴力解法:可以将链表变成list,对list操作再新建链表2.多用指针,用dummy(next=head)来处理首结点的边界情况3.创建链表尾插,颠倒顺序头插4.对链表的某一段操作:断开之前需要用pre和suc指针保存断开片段前后的结点5.一般next、cur、pre指针顺次改变顺序,比如倒序next=cur.next,cur.next=pre,pre=next6.对链表每k个结点操作:考虑递归,断开k个结点的片段,操作完后接回7.需要倒序:考虑递归、栈、指针迭代8.处理末尾边原创 2021-12-09 02:10:11 · 863 阅读 · 0 评论