LC 剑指 Offer 20. 表示数值的字符串 题目描述这是 LeetCode 上的 剑指 Offer 20. 表示数值的字符串 ,难度为 中等。 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 'e' 或 'E' ,后面跟着一个 整数 若干空格 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符(& 2023-11-03 模拟
LC 剑指 Offer II 091. 粉刷房子 题目描述这是 LeetCode 上的 剑指 Offer II 091. 粉刷房子 ,难度为 中等。 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 cost 2023-11-03 动态规划 状态机 DP
LC 117. 填充每个节点的下一个右侧节点指针 II 题目描述这是 LeetCode 上的 117. 填充每个节点的下一个右侧节点指针 II ,难度为 中等。 给定一个二叉树: 123456struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 2023-11-03 BFS 链表
LC 2103. 环和杆 题目描述这是 LeetCode 上的 2103. 环和杆 ,难度为 简单。 总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。 这些环分别穿在 $10$ 根编号为 $0$ 到 $9$ 的杆上。 给你一个长度为 2n 的字符串 rings,表示这 n 个环在杆上的分布。 rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环: 第 i 对中的 第一个 字符表示第 i 个环的 颜色( 2023-11-02 模拟 位运算
LC 2127. 参加会议的最多员工数 题目描述这是 LeetCode 上的 2127. 参加会议的最多员工数 ,难度为 困难。 一个公司准备组织一场会议,邀请名单上有 n 位员工。 公司准备了一张圆形的桌子,可以坐下任意数目的员工。 员工编号为 $0$ 到 $n - 1$。每位员工都有一位喜欢的员工,每位员工当且仅当他被安排在喜欢员工的旁边,他才会参加会议,每位员工喜欢的员工不会是他自己。 给你一个下标从 $0$ 开始的整数数组 fa 2023-11-01 图 拓扑排序 基环森林 内向基环树
LC 2003. 每棵子树内缺失的最小基因值 题目描述这是 LeetCode 上的 2003. 每棵子树内缺失的最小基因值 ,难度为 困难。 有一棵根节点为 0 的 家族树 ,总共包含 n 个节点,节点编号为 0 到 n - 1。 给你一个下标从 0 开始的整数数组 parents,其中 $parents[i]$ 是节点 i 的父节点。由于节点 0 是根 ,所以 $parents[0] = -1$。 总共有 $10^5$ 个基因值,每个基因值 2023-10-30 DFS 脑筋急转弯 图
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