![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
一看就会,上手就废
这个作者很懒,什么都没留下…
展开
-
回溯算法笔记
算法适用题型 搜索, 在一个集合中寻找符合特定条件的子空间。 关键字:集合, 组合 类似于棋盘上填格子。 例: Subset class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: if len(nums) == 0: return [] ls = [] #每个解的存储地址 res = [] #所有解的存储原创 2020-06-21 17:41:20 · 242 阅读 · 0 评论 -
Subset笔记
找全部子集 subset习题链接 算法:每次向res中的所有集合中添加下一个原集合元素 【错误】:每次都要copy res集合和element集合 res集合copy 是防止元素不停增加导致无限循环 element集合copy 是防止在原集合位置中做出修改 def subset(set): res = [[]] for element in set: for set_visited in res[:]: x = set_visited[:]原创 2020-06-20 12:12:57 · 668 阅读 · 0 评论 -
汉诺塔问题笔记
汉诺塔问题 刷题笔记 1刷: 【注意】原函数数少一个参数n用于记录需要移动积木的数量,需要定义一个新函数,否则递归可能陷入循环。 【错误1】 上述问题 【错误2】 不需要手动写出A的变化,直接放在函数中就可以 class Solution: def hanota(self, A: List[int], B: List[int], C: List[int]) -> None: """ Do not return anything, modify C in-plac原创 2020-06-20 10:02:47 · 257 阅读 · 0 评论 -
lintcode137 克隆图
习题链接 一刷: 第二步映射关系没有写对,没有给与mapping[node]图结构 第三步复制边没有想明白, 要先找到对应的新旧点,找到旧点的neighbors并对其遍历,逐个向新点的neighbors中添加原创 2020-05-20 10:02:11 · 106 阅读 · 0 评论 -
lintcode137克隆图(笔记) - BFS
习题链接 图克隆的含义 图克隆是指在开辟另一块内存,去存储一个与原图结构完全一样的图。 思路 图由点和边构成 先找到所有点,在新内存中存储下来 在找的过程中还要存储边 把所有的边复制,之后return 回到开头, 最开始只知道一个点和该点的相邻关系,还知道图是联通的 上述问题是给一个点,找到和他联通的其他所有点,这类问题被称为连通块问题。连通块问题可以用BFS也可以用DFS,最好用BFS(能用BFS就不要用DFS) BFS做连通块问题不需要分层遍历,只需要一层循环就可以,不需要中间的For循环 程序的结原创 2020-05-19 11:34:10 · 124 阅读 · 0 评论 -
BFS刷题lintcode242
二叉树层级转化 习题链接 一刷: res_level.next = ListNode(now_root.val) now_root.val写成了root.val res_level = res_level.next的后面变量名写错了 主要是思路还不够清晰。 """ Definition of TreeNode: class TreeNode: def __init__(self, val): this.val = val this.left, this.right原创 2020-05-18 08:53:15 · 92 阅读 · 0 评论 -
BFS刷题记录-lintcode70
二叉树层次遍历2 思路:反转res列表或者res_level从头插入(deque数据结构) 习题链接 一刷: 一遍过,不过忘了判断root为空的情况。 """ Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None """ from collections import deque class S原创 2020-05-18 08:31:25 · 113 阅读 · 0 评论 -
leetcode剑指offer-BFS二叉树
面试题32.从上打印二叉树(1, 2 ,3) 从上打印二叉树.1 变体2 变体3 一刷: 1. 没有考虑root为None的情况 2. res_level在for中添加了导致输出出现错误 3. 没有正确的将res_level作为【】添加进res #Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = No原创 2020-05-17 10:09:25 · 106 阅读 · 0 评论