LC 275. H 指数 II 题目描述这是 LeetCode 上的 275. H 指数 II ,难度为 中等。 给你一个整数数组 citations,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照 升序排列 。计算并返回该研究者的 h 指数。 h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (n 篇论文中)总共 2023-10-30 二分 数学
LC 274. H 指数 题目描述这是 LeetCode 上的 274. H 指数 ,难度为 中等。 给你一个整数数组 citations,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数”,一名科研人员的 h指数是指他(她)的 (n 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 n - h 篇论 2023-10-29 二分 数学
LC 2558. 从数量最多的堆取走礼物 题目描述这是 LeetCode 上的 2558. 从数量最多的堆取走礼物 ,难度为 简单。 给你一个整数数组 gifts,表示各堆礼物的数量。 每一秒,你需要执行以下操作: 选择礼物数量最多的那一堆。 如果不止一堆都符合礼物数量最多,从中选择任一堆即可。 选中的那一堆留下平方根数量的礼物(向下取整),取走其他的礼物。 返回在 k 秒后剩下的礼物数量。 示例 1:1234567891011 2023-10-28 优先队列(堆)
LC 1465. 切割后面积最大的蛋糕 题目描述这是 LeetCode 上的 1465. 切割后面积最大的蛋糕 ,难度为 中等。 矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 hs 和 vs,其中: hs[i] 是从矩形蛋糕顶部到第 i 个水平切口的距离 vs[j] 是从矩形蛋糕的左侧到第 j 个竖直切口的距离 请你按数组 hs 和 vs 中提供的水平和竖直位置切割后,请你找出面积最大的那份蛋糕,并返回其面积。 由于答案可 2023-10-27 模拟 贪心
LC 2520. 统计能整除数字的位数 题目描述这是 LeetCode 上的 2520. 统计能整除数字的位数 ,难度为 简单。 给你一个整数 num,返回 num 中能整除 num 的数位的数目。 如果满足 nums % val == 0,则认为整数 val 可以整除 nums。 示例 1:12345输入:num = 7输出:1解释:7 被自己整除,因此答案是 1 。示例 2:12345输入:num = 121输出:2解释:121 可 2023-10-26 模拟
LC 2698. 求一个整数的惩罚数 题目描述这是 LeetCode 上的 2698. 求一个整数的惩罚数 ,难度为 中等。 给你一个正整数 $n$,请你返回 $n$ 的 惩罚数 。 $n$ 的 惩罚数 定义为所有满足以下条件 $i$ 的数的平方和: $1 <= i <= n$ $i \times i$ 的十进制表示的字符串可以分割成若干连续子字符串,且这些子字符串对应的整数值之和等于 $i$ 。 示例 1:123 2023-10-25 模拟 递归 打表
LC 543. 二叉树的直径 题目描述这是 LeetCode 上的 543. 二叉树的直径 ,难度为 简单。 给你一棵二叉树的根节点,返回该树的直径。 二叉树的直径是指树中任意两个节点之间最长路径的长度。 这条路径可能经过也可能不经过根节点 root。 两节点之间路径的长度由它们之间边数表示。 示例 1:12345输入:root = [1,2,3,4,5]输出:3解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 2023-09-22 DFS 二叉树
LC 2246. 相邻字符不同的最长路径 题目描述这是 LeetCode 上的 2246. 相邻字符不同的最长路径 ,难度为 困难。 给你一棵 树(即一个连通、无向、无环图),根节点是节点 0,这棵树由编号从 0 到 n - 1 的 n 个节点组成。 用下标从 0 开始、长度为 n 的数组 parent 来表示这棵树,其中 parent[i] 是节点 i 的父节点,由于节点 0 是根节点,所以 parent[0] = -1。 另给你一个字 2023-09-22 动态规划 DFS 树形 DP 树
LC 124. 二叉树中的最大路径和 题目描述这是 LeetCode 上的 124. 二叉树中的最大路径和 ,难度为 困难。 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root,返回其 最大路径和 。 示例 1: 12345输入:root = [1,2 2023-09-20 动态规划 DFS 二叉树 递归 树形 DP
LC 834. 树中距离之和 题目描述这是 LeetCode 上的 834. 树中距离之和 ,难度为 困难。 给定一个无向、连通的树。 树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges, $edges[i] = [a{i}, b{i}]$表示树中的节点 $a{i}$ 和 $b{i}$ 之间有一条边。 返回长度为 n 的数组 answer,其中 answer[i] 是树中第 i 2023-09-19 动态规划 DFS 树形 DP 树
LC 96. 不同的二叉搜索树 题目描述这是 LeetCode 上的 96. 不同的二叉搜索树 ,难度为 中等。 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种? 返回满足题意的二叉搜索树的种数。 示例 1:123输入:n = 3输出:5示例 2:123输入:n = 1输出:1 提示: $1 <= n <= 19$ 区间 DP沿用 95. 不同的二叉搜索树 I 2023-09-12 动态规划 数学 树 区间 DP 二叉搜索树 卡特兰数
LC 95. 不同的二叉搜索树 II 题目描述这是 LeetCode 上的 95. 不同的二叉搜索树 II ,难度为 中等。 给你一个整数 n,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。 可以按 任意顺序 返回答案。 示例 1: 123输入:n = 3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,nul 2023-09-12 DFS BST 递归 树 二叉搜索树 爆搜
LC 109. 有序链表转换二叉搜索树 题目描述这是 LeetCode 上的 109. 有序链表转换二叉搜索树 ,难度为 中等 给定一个单链表的头节点 head,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 $1$。 示例 1: 12345输入: head = [-10,-3,0,5,9]输出: [0,-3,9,-10,null,5]解释: 2023-09-11 二叉树 中序遍历 树的搜索 分治
LC 108. 将有序数组转换为二叉搜索树 题目描述这是 LeetCode 上的 108. 将有序数组转换为二叉搜索树 ,难度为 简单。 给你一个整数数组 nums,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 $1$ 」的二叉树。 示例 1:12345输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5 2023-09-11 二叉树 树的搜索 分治
LC 99. 恢复二叉搜索树 题目描述这是 LeetCode 上的 99. 恢复二叉搜索树 ,难度为 中等。 给你二叉搜索树的根节点 root,该树中的 恰好 两个节点的值被错误地交换。 请在不改变其结构的情况下,恢复这棵树 。 示例 1: 12345输入:root = [1,3,null,null,2]输出:[3,1,null,null,2]解释:3 不能是 1 的左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜 2023-09-07 二叉树 中序遍历 树的搜索 递归 迭代 Morris 遍历