
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 · 290 阅读 · 0 评论 -
二叉树总结
1.DFS的三种遍历顺序,特点 2.BFS遍历使用两端队列(collections.deque())可以不占用额外空间,每层遍历删除头元素,将下一层子节点加入队尾 3.考虑左右子树分治 如最大深度=max(左子树最大深度,右子树最大深度) 平衡二叉树:左子树平衡 and 右子树平衡 and 左右子树深度差<1 重建二叉树:重建左子树+重建右子树 4.注意搜索树的性质(左<root<右) 搜索树考虑中序遍历:结果升序 5.某节点路径、回溯问题,可以使用hash表储存父节点与子节点的指向关系原创 2022-02-25 03:41:07 · 531 阅读 · 0 评论 -
递归、分治·、快排及归并排序
添加链接描述原创 2021-12-05 14:43:16 · 114 阅读 · 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=next 6.对链表每k个结点操作:考虑递归,断开k个结点的片段,操作完后接回 7.需要倒序:考虑递归、栈、指针迭代 8.处理末尾边原创 2021-12-09 02:10:11 · 873 阅读 · 0 评论