- 博客(4)
- 收藏
- 关注
原创 BFS与DFS练习:102二叉树的层序遍历、104二叉树的最大深度、111二叉树的最小深度
广度优先搜索BFS先访问根节点,再逐层访问。从起点开始对于直接子孩子,地毯式搜索。申请一个队列实现。树不会重复,但图和抽象结合有可能重复。visited = set()def BFS(graph,start,end): queue = [] queue.append(start) visited.add(start) while queue: node = queue.pop() visited.add(node)
2020-09-16 15:39:40
113
原创 递归与分治:题目手写50Pow(x,n)、169多数元素、122买卖股票的最佳时机
递归深度优先搜索的基础。一种循环,自己调用自己。比如:盗梦空间attention:递归出口,不然无限死循环。eg1: 计算n!def Factorial(n): #递归的出口 if n<= 1: return 1 return n * Factorial(n-1)递归函数的形式:def recursion(level,param1,param2,...): #递归的终止条件 if level > MAX_LEVEL:
2020-09-14 18:54:26
168
原创 树理论与二叉树习题:验证二叉树、二叉树(二叉搜索树)最近公共祖先
树,二叉树,二叉搜索树链表:每个next指向后续节点当要访问中间的节点时,要从头或双向链表从尾部去找。所以当一个节点有多个next,比如left与right,child1、child2…就形成了树。树是无环单向链接的。二叉树:一个节点最多只有两个子节点。如果孩子节点再指向回去,则是图。Python:实现二叉树class TreeNode: def __init__(self,val): self.val = val self.left,self.ri
2020-09-13 17:16:19
149
原创 算法题:两数之和与三数字之和思路与代码
1.两数之和题目来源:https://leetcode-cn.com/problems/two-sum/给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:建立一个字典存下
2020-09-10 19:32:37
518
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人