08 2020 档案
摘要:这个模块提供了堆队列算法的实现,也称为优先队列算法 堆是一个二叉树,它的每个父节点的值都只会小于或大于所有孩子节点(的值),他使用了数组来实现。堆最小的元素总是在根节点:heap[0] 要创建一个堆,可以使用list来初始化为[],或者你可以通过一个函数heapify(),来把一个list转换成堆
阅读全文
摘要:cx_Oracle 是一个Python的扩展模块,通过使用所有数据库访问的模块通用的数据库API来是实现Oracle数据库的查询和更新。 cx_Oracle的开发历时十多年,涵盖了大多数需要在Python中访问Oracle的客户的需求。2008年12月,一个新的主要版本解决了早期版本的众多限制,并增
阅读全文
摘要:548. 两数组的交集 II 中文English 给定两个数组,计算两个数组的交集 样例 样例1 输入: nums1 = [1, 2, 2, 1], nums2 = [2, 2] 输出: [2, 2] 样例2 输入: nums1 = [1, 1, 2], nums2 = [1] 输出: [1] 挑战
阅读全文
摘要:16. 带重复元素的排列 中文English 给出一个具有重复数字的列表,找出列表所有不同的排列。 样例 样例 1: 输入:[1,1] 输出: [ [1,1] ] 样例 2: 输入:[1,2,2] 输出: [ [1,2,2], [2,1,2], [2,2,1] ] 挑战 使用递归和非递归分别完成该题
阅读全文
摘要:11. 二叉查找树中搜索区间 中文English 给定一个二叉查找树和范围[k1, k2]。按照升序返回给定范围内的节点值。 样例 样例 1: 输入:{5},6,10 输出:[] 5 它将被序列化为 {5} 没有数字介于6和10之间 样例 2: 输入:{20,8,22,4,12},10,22 输出:
阅读全文
摘要:什么是LRU Cache? Cache:容量较小但访问速度很快的存储单位,常用语缓存一些常访问的内容,从而提高访问速度(例:硬件Cache,Memcached) LRU(Least Recent Used):一种Cache替换策略,当Cache被填满时,将最不常访问的元素替换掉. 生活中的Cache
阅读全文
摘要:HashTable是一种非常常见且用途十分广泛的数据结构,使用hashtable可以大大提高数据的检索速度,是一种非常优秀的结构 Hash算法: 既然说到hashtable,首先明白hash是什么意思,hash的中文翻译是散列 hash是一类算法的统称,散列函数(或散列算法,又称为哈希函数,是一种从
阅读全文
摘要:1676. 跳石头 CAT 专属题目 中文English There are n stones between the starting point and the end point. The distance between the starting point and the ith (i s
阅读全文
摘要:1670. 回合制游戏 CAT 专属题目 中文English QW 是一个回合制游戏的玩家,今天他决定去打怪。 QW 在一场战斗中会碰到 n 个怪物,每个怪物有攻击力 atk[i],每回合结束时如果第 i 个怪物还活着,就会对 QW 造成 atk[i] 的伤害。QW 只能在每回合开始时击杀一个怪物,
阅读全文
摘要:1667. 区间统计 CAT 专属题目 中文English 给定一个01数组 arr 和 一个整数 k, 统计有多少区间符合如下条件: 区间的两个端点都为 0 (允许区间长度为1) 区间内 1 的个数不多于 k 样例 样例 1: 输入: arr = [0, 0, 1, 0, 1, 1, 0], k
阅读全文
摘要:1666. 组合+判断素数 中文English 给定 n 个整数和一个整数 k, 你可以从中选择 k 个整数, 现在,要求你计算出k个数和为素数共有多少种方案。 样例 样例 1: 输入:a=[3,7,12,19],k=3 输出:1 解释: There are 4 ways 3+7+12=22 3+7
阅读全文
摘要:牛郎织女 · Cowherd&Weaver 描述 又到了七夕节,牛郎织女相约一起去一个n*m大小的迷宫maze里玩耍。然而没过多久,他们就倒霉地走散了。现在给定由.,*,S,T组成的矩阵maze,其中.表示空地,*表示障碍物,S表示牛郎的位置 ,T表示织女的位置,牛郎和织女都会试图寻找对方,不停地在
阅读全文
摘要:1759. 二叉树的结点 中文English 给出一棵二叉树,返回其节点数。 样例 样例 1: 输入: {1,#,2,3} 1 \ 2 / 3 输出: 3 样例 2: 输入: {1,2,3} 1 / \ 2 3 输出: 3 输入测试数据 (每行一个参数)如何理解测试数据? 递归写法: """ Def
阅读全文
摘要:1.求所有的长度为K的组合(不重复) 例:[1,2,3,4,5] 所有组合:[[1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 3, 4], [1, 3, 5], [1, 4, 5], [2, 3, 4], [2, 3, 5], [2, 4, 5], [3, 4, 5]] a
阅读全文
摘要:175. 翻转二叉树 中文English 翻转一棵二叉树。左右子树交换。 样例 样例 1: 输入: {1,3,#} 输出: {1,#,3} 解释: 1 1 / => \ 3 3 样例 2: 输入: {1,2,3,#,#,4} 输出: {1,3,2,#,4} 解释: 1 1 / \ / \ 2 3 =
阅读全文
摘要:67. 二叉树的中序遍历 中文English 给出一棵二叉树,返回其中序遍历 样例 样例 1: 输入:{1,2,3} 输出:[2,1,3] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 中序遍历 样例 2: 输入:{1,#,2,3} 输出:[1,3,2] 解释: 1 \ 2 / 3 它将
阅读全文
摘要:376. 二叉树的路径和 中文English 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 样例 样例1: 输入: {1,2,4,2,3} 5 输出: [[1, 2, 2],[1, 4]] 说明: 这棵树如下图所示: 1 /
阅读全文
摘要:66. 二叉树的前序遍历 中文English 给出一棵二叉树,返回其节点值的前序遍历。 样例 样例 1: 输入:{1,2,3} 输出:[1,2,3] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 前序遍历 样例 2: 输入:{1,#,2,3} 输出:[1,2,3] 解释: 1 \ 2 /
阅读全文
摘要:219. 在排序链表中插入一个节点 中文English 在链表中插入一个节点。 样例 样例 1: 输入:head = 1->4->6->8->null, val = 5 输出:1->4->5->6->8->null 样例 2: 输入:head = 1->null, val = 2 输出:1->2->
阅读全文
摘要:105. 复制带随机指针的链表 中文English 给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。 返回一个深拷贝的链表。 挑战 可否使用O(1)的空间 hashmap写法,O(n)时间复杂度 """ Definition for singly-linked l
阅读全文
摘要:35. 翻转链表 中文English 翻转一个链表 样例 样例 1: 输入: 1->2->3->null 输出: 3->2->1->null 样例 2: 输入: 1->2->3->4->null 输出: 4->3->2->1->null 挑战 在原地一次翻转完成 输入测试数据 (每行一个参数)如何理
阅读全文
摘要:450. K组翻转链表 中文English 给你一个链表以及一个k,将这个链表从头指针开始每k个翻转一下。链表元素个数不是k的倍数,最后剩余的不用翻转。 样例 Example 1 Input: list = 1->2->3->4->5->null k = 2 Output: 2->1->4->3->
阅读全文
摘要:6. 合并排序数组 II 中文English 合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。 样例 样例 1: 输入: A=[1], B=[1] 输出:[1,1] 样例解释: 返回合并后的数组。 样例 2: 输入: A=[1,2,3,4], B=[2,4,5,6] 输出: [1,
阅读全文
摘要:64. 合并排序数组 中文English 合并两个排序的整数数组A和B变成一个新的数组。 样例 样例 1: 输入:[1, 2, 3] 3 [4,5] 2 输出:[1,2,3,4,5] 解释: 经过合并新的数组为[1,2,3,4,5] 样例 2: 输入:[1,2,5] 3 [3,4] 2 输出:[1,
阅读全文
摘要:165. 合并两个排序链表 中文English 将两个排序链表合并为一个新的排序链表 样例 样例 1: 输入: list1 = null, list2 = 0->3->3->null 输出: 0->3->3->null 样例2: 输入: list1 = 1->3->8->11->15->null,
阅读全文
摘要:103. 带环链表 II 中文English 给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。 样例 样例 1: 输入:null,no cycle 输出:no cycle 解释: 链表为空,所以没有环存在。 样例 2: 输入:-21->10->4->5,tail
阅读全文
摘要:102. 带环链表 中文English 给定一个链表,判断它是否有环。 样例 ``` 样例 1: 输入: 21->10->4->5, then tail connects to node index 1(value 10). 输出: true 样例 2: 输入: 21->10->4->5->null
阅读全文
摘要:178. 图是否是树 中文English 给出 n 个节点,标号分别从 0 到n - 1 并且给出一个 无向 边的列表 (给出每条边的两个顶点), 写一个函数去判断这张`无向`图是否是一棵树 样例 样例 1: 输入: n = 5 edges = [[0, 1], [0, 2], [0, 3], [1
阅读全文
摘要:69. 二叉树的层次遍历 中文English 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 样例 1: 输入:{1,2,3} 输出:[[1],[2,3]] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 层次遍历 样例 2: 输入:{1,#,2,3} 输出:[[1],[
阅读全文
摘要:17. 子集 中文English 给定一个含不同整数的集合,返回其所有的子集。 样例 样例 1: 输入:[0] 输出: [ [], [0] ] 样例 2: 输入:[1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 挑战 你可
阅读全文
摘要:33. N皇后问题 中文English n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行,同一列,同一斜线)。 给定一个整数n,返回所有不同的n皇后问题的解决方案。 每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位
阅读全文
摘要:15. 全排列 中文English 给定一个数字列表,返回其所有可能的排列。 样例 样例 1: 输入:[1] 输出: [ [1] ] 样例 2: 输入:[1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 挑战 使用
阅读全文
摘要:153. 数字组合 II 中文English 给定一个数组 num 和一个整数 target. 找到 num 中所有的数字之和为 target 的组合. 样例 样例 1: 输入: num = [7,1,2,5,1,6,10], target = 8 输出: [[1,1,6],[1,2,5],[1,7
阅读全文
摘要:135. 数字组合 中文English 给定一个候选数字的集合 candidates 和一个目标值 target. 找到 candidates 中所有的和为 target 的组合. 在同一个组合中, candidates 中的某个数字不限次数地出现. 样例 样例 1: 输入: candidates
阅读全文
摘要:95. 验证二叉查找树 中文English 给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为: 节点的左子树中的值要严格小于该节点的值。 节点的右子树中的值要严格大于该节点的值。 左右子树也必须是二叉查找树。 一个节点的树也是二叉查找树。 样例 样例 1: 输入:{-1} 输
阅读全文
摘要:88. 最近公共祖先 中文English 给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。 最近公共祖先是两个节点的公共的祖先节点且具有最大深度。 样例 样例 1: 输入:{1},1,1 输出:1 解释: 二叉树如下(只有一个节点): 1 LCA(1,1) = 1 样例 2: 输入:{4,3
阅读全文
摘要:245. 子树 中文English 有两个不同大小的二叉树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。 样例 样例 1: 输入:{1,2,3,#,#,4},{3,4} 输出:true 解释: 下面的例子中 T2 是 T1 的子树: 1 3 / \
阅读全文
摘要:93. 平衡二叉树 中文English 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 样例 样例 1: 输入: tree = {1,2,3} 输出: true 样例解释: 如下,是一个平衡的二叉树。 1 / \
阅读全文