08 2021 档案
【LeetCode-968】监控二叉树
摘要:问题 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 输入: [0,0,null,0,0] 输出: 1 解释: 如图所示,一台摄像头足以监控所有节点。 解答 class Solution {
【LeetCode-979】在二叉树中分配硬币
摘要:问题 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。 在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。 返回使每个结点上
【LeetCode-873】最长的斐波那契子序列的长度
摘要:问题 给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0 。 示例 输入: arr = [1,2,3,4,5,6,7,8] 输出: 5 解释: 最长的斐波那契式子序列为 [1,2,3,5,8] 。 解答 class Solutio
【2021京东秋招】01比
摘要:问题 小明有一个只包含0和1的字符串,现在小明希望将整个字符串尽可能的切割成多个字符串,要求是每个字符串里面0出现的次数和1出现的次数的比例是一致的。 解释:假设一个字符串出现0的次数是a次,出现1的次数是b另一个字符串出现0的次数是c次,出现1的次数是d次,那么这两个字符串01出现次数比例相同表示
【LeetCode-1109】航班预订统计
摘要:问题 这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预
【LeetCode-992】K 个不同整数的子数组
摘要:问题 给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定不同的子数组为好子数组。 (例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。) 返回 A 中好子数组的数目。 提示: 1 ⇐ A.length ⇐ 20000 1 ⇐
【LeetCode-904】水果成篮
摘要:问题 在一排树中,第 i 棵树产生 tree[i] 型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步
【LeetCode-467】环绕字符串中唯一的子字符串
摘要:问题 把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". 现在我们有了另一个字符串 p 。你需要
【LeetCode-795】区间子数组个数
摘要:问题 给定一个元素都是正整数的数组A ,正整数 L 以及 R (L ⇐ R)。 求连续、非空且其中最大元素满足大于等于L 小于等于R的子数组个数。 示例 输入: A = [2, 1, 4, 3] L = 2 R = 3 输出: 3 解释: 满足条件的子数组: [2], [2, 1], [3]. 解答
【LeetCode-378】有序矩阵中第 K 小的元素
摘要:问题 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 示例 输入: matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8 输出
【LeetCode-373】找出第 k 小的距离对
摘要:问题 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) ... (uk,vk) 。 示例 输入: nums1 = [
【LeetCode-29】两数相除
摘要:问题 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 t
【LeetCode-329】矩阵中的最长递增路径
摘要:问题 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 示例 输入: matrix = [[9,9,4],[6,6,8],[2,1,1]] 输出:
【LeetCode-76】最小覆盖子串
摘要:问题 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存在这样的子串,我们保证它是唯一的答案
【LeetCode-43】字符串相乘
摘要:问题 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 输入: num1 = "123", num2 = "456" 输出: "56088" 解答 class Solution { public: string m
【LeetCode-51】 N 皇后
摘要:问题 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 提示: 1 ⇐ n
【LeetCode-155】最小栈
摘要:问题 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 解答1:辅助栈 class MinStack
【面试题 01.04】回文排列
摘要:问题 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串不一定是字典当中的单词。 示例 输入: "tactcoa" 输出: true(排列有"tacocat"、"atcocta",等等) 解答 class Solution { public: bool canPermutePal
【LeetCode-457】环形数组是否存在循环
摘要:问题 存在一个不含 0 的 环形 数组 nums ,每个 nums[i] 都表示位于下标 i 的角色应该向前或向后移动的下标个数: 如果 nums[i] 是正数,向前 移动 nums[i] 步 如果 nums[i] 是负数,向后 移动 nums[i] 步 因为数组是 环形 的,所以可以假设从最后一个
【LeetCode-287】寻找重复数
摘要:问题 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有一个重复的整数 ,找出这个重复的数 。 你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。 示例 输入: nums
【LeetCode-142】环形链表 II
摘要:问题 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 说
【LeetCode-847】访问所有节点的最短路径
摘要:问题 存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号。 给你一个数组 graph 表示这个图。其中,graph[i] 是一个列表,由所有与节点 i 直接相连的节点组成。 返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重
【LeetCode-162】寻找峰值
摘要:问题 峰值元素是指其值大于左右相邻值的元素。 给你一个输入数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值 所在位置即可。对于所有有效的 i 都有 nums[i] != nums[i + 1] 你可以假设 nums[-1] = nums[n] = -∞
【LeetCode-56】合并区间
摘要:问题 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 输入: intervals = [[1,3],[2,6],[8,10],
【推荐算法】AUC的计算方法
摘要:AUC是衡量二分类模型优劣的一种评价指标,有两种等价定义: 面积定义:ROC曲线下围成的面积 物理定义:模型预测的正例排在负例前面的概率 面积定义 AUC通常指ROC曲线下的面积(Area Under the ROC Curve)。其中,ROC(Receiver Operating Characte
【LeetCode-1552】 两球之间的磁力
摘要:问题 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。 已知两个球如果分别位于 x
【LeetCode-719】找出第 k 小的距离对
摘要:问题 给定一个整数数组,返回所有数对之间的第 k 个最小距离。一对 (A, B) 的距离被定义为 A 和 B 之间的绝对差值。 示例 输入: nums = [1,3,1] k = 1 输出:0 解释: 所有数对如下: (1,3) → 2 (1,1) → 0 (3,1) → 2 因此第 1 个最小距离
【LeetCode-797】所有可能的路径
摘要:问题 给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点(译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a )空就是没有下一个结点了。 示例 输入: graph =