
Leetcode
不要关注我
这个作者很懒,什么都没留下…
展开
-
零钱兑换问题 python 动态规划
参考官方第三种解法,自下而上https://leetcode-cn.com/problems/coin-change/solution/322-ling-qian-dui-huan-by-leetcode-solution/labuladong的动态规划做题思路https://leetcode-cn.com/problems/coin-change/solution/322-ling-qian-dui-huan-by-ac_fun-afrb/https://leetcode-cn.com/probl原创 2021-01-05 11:31:26 · 358 阅读 · 0 评论 -
数据流的中位数 python 双堆
思路要取得中位数,所以只要关注前一半数字的最小值和后一段数字的最大值,采用堆来进行维护https://leetcode-cn.com/problems/shu-ju-liu-zhong-de-zhong-wei-shu-lcof/solution/jian-zhi-41shu-ju-liu-zhong-wei-shu-shua-w7yh/# 奇数时向小根堆添加,但是确保向小根堆中添加元素比大根堆元素大,故先加入大根堆,将大根堆堆顶弹出给小根堆#偶数时向左边大根堆添加,但是确保向大根堆添加元素均比小根原创 2021-06-26 11:00:21 · 307 阅读 · 0 评论 -
并查集学习
https://zhuanlan.zhihu.com/p/125604577转载 2021-01-19 11:57:51 · 82 阅读 · 0 评论 -
数据结构提纲
作者:CodingFish链接:https://zhuanlan.zhihu.com/p/107791804来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一、算法最最基础 1、时间复杂度 2、空间复杂度 二、基础数据结构 1、线性表 列表(必学) 链表(必学) 跳跃表(知道原理,应用,最后自己实现一遍) 并查集(建议结合刷题学习) 不用说,链表、列表必须,不过重点是链表。 2、栈与队列 栈(必学) 队列(必学) 优先队列、堆(必学) 多级反馈队列(原理与应用) 3、哈转载 2021-01-19 12:11:04 · 95 阅读 · 0 评论 -
二叉树所有模板
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None# 递归# 时间复杂度:O(n),n为节点数,访问每个节点恰好一次。# 空间复杂度:空间复杂度:O(h),h为树的高度。最坏情况下需要空间O(n),平均情况为O(logn).转载 2021-03-05 10:16:38 · 244 阅读 · 1 评论 -
二叉树 先序遍历 递归与迭代
class Solution(object): def __init__(self): self.res = [] def preorderTraversal(self, root): # res = [] 递归时注意不要把结果初始化放在其中,否则会改变 if root == None: return [] self.res.append(root.val) self.preorderT原创 2021-03-05 11:59:51 · 107 阅读 · 0 评论 -
二叉树的四种遍历方式 迭代+递归
中序遍历的迭代解法,需要用栈来做,思路是从根节点开始,先将根节点压入栈,然后再将其所有左子结点压入栈,然后取出栈顶节点,保存节点值,再将当前指针移到其右子节点上,若存在右子节点,则在下次循环时又可将其所有左子结点压入栈中。这样就保证了访问顺序为左-根-右。...原创 2021-03-05 14:42:42 · 109 阅读 · 0 评论 -
二分法
模板参见 labuladong在排序数组中查找元素的第一个和最后一个位置很清晰的题解class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: def left_bound(l,r): while(l<=r): mid=(l+r)//2 if(nums[mid]==ta原创 2021-03-09 15:58:31 · 111 阅读 · 0 评论 -
leet code 给定一个二叉树,找出其最小深度。
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量坑:此处需注意判断边界条件,如果左子树深度、右子树深度均不为0,则用min取其中最小值。如果有一个为0,取其中非0的数;都为0,取0。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。注意是叶子节点。什么是叶子节点,左右孩子都为空的节点才是叶子节点.class Solution(object): def minDepth(self, root): # 1.递归结束条件原创 2020-12-24 19:36:15 · 484 阅读 · 4 评论 -
回溯模板
class Solution: def letterCombinations(self, digits: str) -> List[str]: dict1 = { "2":"abc", "3":"def", "4":"ghi", "5":"jkl", "6":"mno", "7":"pqrs", "8原创 2021-03-06 14:22:38 · 164 阅读 · 0 评论