leedcode
这孩子啥都会一点
一个小白的码农之路 2020.10.10
展开
-
二分查找模板
二分法: def two_spolit_find(nums,target): 左 = 0#定义左指针 右 = len(nums)-1#定义右指针 while 左>=右:#当循环结束,左指针必然会大于右指针1 mid = (左+右)//2 #1、通过左进一步确定序列的左边界 if nums[mid]<target: 左 = mid+1 #最后左必然会等于target;如果taget存在 else: 右 = mid-1#最后右必然会小于左,小于target .原创 2022-03-15 11:46:51 · 125 阅读 · 0 评论 -
break
break:用来终止循环语句,即循环条件或者序列还没有完全递归完,也会停止执行的循环语句,常用在while和for循环内 a = [1,2,3,4,1,1,1,1] b = [] for i in a: if i < 3: b.append(i) else: break 以上的结果将变为[1,2] 遍历列表所有元素的时候,是不需要break的,属于画蛇添足 ...原创 2022-03-14 17:35:45 · 337 阅读 · 0 评论 -
213动态规划
丑数 class Solution: def nthUglyNumber(self, n: int) -> int: dp= [0]*(n+1) dp[1] = 1 p2, p3, p5 = 1, 1, 1 for i in range(2,n+1): num2, num3, num5 = 2*dp[p2],dp[p3]*3,dp[p5]*5 dp[i] = min(num2, .原创 2022-03-03 21:36:28 · 85 阅读 · 0 评论 -
40 组合总和(回溯算法)
回溯算法模板 def backfunction(参数): if (终止条件): 存放结果 return for 元素 in 集合 处理节点 backfuction(参数)//递归 回溯,撤销处理结果 class Solution: def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]: list_all = [] candid.原创 2022-02-27 15:56:52 · 180 阅读 · 0 评论 -
144 前、后序遍历
二叉树的前序遍历:按照访问根节点——左子树——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.rig.原创 2022-02-27 09:55:22 · 204 阅读 · 0 评论 -
110 平衡二叉树
平衡二叉树的定义是:二叉树的每个节点的左右子树的高度差的绝对值不超过 1,则二叉树是平衡二叉树。 所以一个平衡二叉树的子树也是平衡二叉树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right.原创 2022-02-26 20:47:27 · 275 阅读 · 0 评论 -
107层序遍历
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def levelOrderBottom(self, root: TreeNode) -原创 2022-02-26 10:29:57 · 133 阅读 · 0 评论 -
106 中后序构造二叉树
二叉树 中序和后序 利用后序pop和递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def buildTree(self, i原创 2022-02-25 21:27:42 · 176 阅读 · 0 评论 -
105确定唯一二叉树
二叉树 105通过前序和中序确定唯一二叉树 利用前序第一个为根节点和终止条件 前序遍历的顺序 [ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ] 先遍历根节点 随后递归遍历左子树 最后递归遍历右子树 中序遍历的顺序 [ [左子树的中序遍历结果], 根节点, [右子树的中序遍历结果] ] 先递归地遍历左子树 随后遍历根节点 最后递归地遍历右子树 后序遍历的顺序 [ [左子树的中序遍历结果], [右子树的中序遍历结果] ,根节点] 先递归地遍历左子树 随后递归地遍历原创 2022-02-24 22:47:55 · 351 阅读 · 0 评论 -
95 不同的二叉搜索树
95 不同的二叉搜索树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def generateTrees(self, n: int)原创 2022-02-23 22:20:31 · 583 阅读 · 1 评论