LeetCode每日一题打卡
文章平均质量分 79
硕风和炜
硕风和炜,CSDN官方Java领域优质创作者,阿里云社区专家博主,华为云云享专家,第十二届蓝桥杯JavaB组省1,保研,国家奖学金,JAVA开发技术栈,面试刷题,面经八股文,经验分享,好用的网站工具分享
展开
-
【LeetCode:143. 重排链表 + 链表】
【LeetCode:143. 重排链表 + 链表】给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。原创 2024-05-08 17:01:08 · 266 阅读 · 0 评论 -
【LeetCode:147. 对链表进行插入排序 + 链表】
【LeetCode:147. 对链表进行插入排序 + 链表】给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。原创 2024-05-07 16:44:34 · 397 阅读 · 0 评论 -
【LeetCode:52. N 皇后 II + DFS】
【LeetCode:52. N 皇后 II + DFS】n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。原创 2024-05-06 14:03:47 · 535 阅读 · 0 评论 -
【LeetCode:1652. 拆炸弹 + 模拟】
【LeetCode:1652. 拆炸弹 + 模拟】你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。如果 k == 0 ,将第 i 个数字用 0 替换。由于 code 是循环的, code[n-1] 下一个元素是 code[0] ,且原创 2024-05-05 16:52:22 · 477 阅读 · 0 评论 -
【LeetCode:1235. 规划兼职工作 + 动态规划 + 二分查找】
【LeetCode:1235. 规划兼职工作 + 动态规划 + 二分查找】你打算利用空闲时间来做兼职工作赚些零花钱。这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。给你一份兼职工作表,包含开始时间 startTime,结束时间 endTime 和预计报酬 profit 三个数组,请你计算并返回可以获得的最大报酬。注意,时间上出现重叠的 2 份工作不能同时进行。如果你选择的工作在时间 X 结束,那么你可以立刻进行原创 2024-05-04 13:52:56 · 739 阅读 · 1 评论 -
【LeetCode:1491. 去掉最低工资和最高工资后的工资平均值 + 模拟】
【LeetCode:1491. 去掉最低工资和最高工资后的工资平均值 + 模拟】给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。原创 2024-05-03 10:17:16 · 2 阅读 · 0 评论 -
【LeetCode:127. 单词接龙 + BFS】
【LeetCode:127. 单词接龙 + BFS】字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk:每一对相邻的单词只差一个字母。 对于 1原创 2024-05-02 21:28:40 · 979 阅读 · 0 评论 -
【LeetCode:2462. 雇佣 K 位工人的总代价 + 最小堆】
【LeetCode:2462. 雇佣 K 位工人的总代价 + 最小堆】给你一个下标从 0 开始的整数数组 costs ,其中 costs[i] 是雇佣第 i 位工人的代价。同时给你两个整数 k 和 candidates 。我们想根据以下规则恰好雇佣 k 位工人:总共进行 k 轮雇佣,且每一轮恰好雇佣一位工人。在每一轮雇佣中,从最前面 candidates 和最后面 candidates 人中选出代价最小的一位工人,如果有多位代价相同且最小的工人,选择下标更小的一位工人。比方说,costs = [原创 2024-05-01 13:16:10 · 968 阅读 · 0 评论 -
【LeetCode:85. 最大矩形 + 单调栈】
【LeetCode:85. 最大矩形 + 单调栈】给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。原创 2024-04-30 11:51:33 · 389 阅读 · 0 评论 -
【LeetCode:1103. 分糖果 II + 模拟】
【LeetCode:1103. 分糖果 II + 模拟】排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到原创 2024-04-29 18:21:11 · 680 阅读 · 0 评论 -
【LeetCode:1046. 最后一块石头的重量 + 大根堆】
【LeetCode:1046. 最后一块石头的重量 + 大根堆】有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x原创 2024-04-28 21:07:14 · 703 阅读 · 0 评论 -
【LeetCode:2639. 查询网格图中每一列的宽度 + 模拟】
【LeetCode:2639. 查询网格图中每一列的宽度 + 模拟】给你一个下标从 0 开始的 m x n 整数矩阵 grid 。矩阵中某一列的宽度是这一列数字的最大 字符串长度 。比方说,如果 grid = [[-10], [3], [12]] ,那么唯一一列的宽度是 3 ,因为 -10 的字符串长度为 3 。请你返回一个大小为 n 的整数数组 ans ,其中 ans[i] 是第 i 列的宽度。一个有 len 个数位的整数 x ,如果是非负数,那么 字符串长度 为 len ,否则为 len +原创 2024-04-27 11:33:51 · 667 阅读 · 0 评论 -
【LeetCode:2095. 删除链表的中间节点 + 链表】
【LeetCode:2095. 删除链表的中间节点 + 链表】给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。对于 n = 1、2、3、4 和 5 的情况,中间节点的下标分别是 0、1、1、2 和 2 。原创 2024-04-26 14:00:34 · 860 阅读 · 1 评论 -
【LeetCode:2390. 从字符串中移除星号 + 栈】
【LeetCode:2390. 从字符串中移除星号 + 栈】给你一个包含若干星号 * 的字符串 s 。在一步操作中,你可以:选中 s 中的一个星号。移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。返回移除 所有 星号之后的字符串。原创 2024-04-25 13:58:18 · 604 阅读 · 0 评论 -
【LeetCode:1493. 删掉一个元素以后全为 1 的最长子数组+ 递推】
【LeetCode:1493. 删掉一个元素以后全为 1 的最长子数组+ 递推】给你一个二进制数组 nums ,你需要从中删掉一个元素。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组,请返回 0 。原创 2024-04-24 16:34:38 · 352 阅读 · 0 评论 -
【LeetCode:1456. 定长子串中元音的最大数目+ 滑动窗口】
【LeetCode:1456. 定长子串中元音的最大数目+ 滑动窗口】给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。原创 2024-04-23 22:12:08 · 487 阅读 · 0 评论 -
【LeetCode:377. 组合总和 Ⅳ + 递归 + 缓存】
【LeetCode:377. 组合总和 Ⅳ + 递归 + 缓存】给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。原创 2024-04-22 14:08:01 · 802 阅读 · 0 评论 -
【LeetCode:216. 组合总和 III + 递归】
【LeetCode:216. 组合总和 III + 递归】找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。原创 2024-04-21 10:08:23 · 1238 阅读 · 0 评论 -
【LeetCode: 39. 组合总和 + 递归】
【LeetCode: 39. 组合总和 + 递归】给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。原创 2024-04-20 12:57:24 · 728 阅读 · 0 评论 -
【LeetCode: 696. 计数二进制子串 + 思维】
【LeetCode: 696. 计数二进制子串 + 思维】给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的。重复出现(不同位置)的子串也要统计它们出现的次数。原创 2024-04-19 22:11:42 · 1174 阅读 · 0 评论 -
【LeetCode: 2007. 从双倍数组中还原原数组 + 哈希表 + 排序】
【LeetCode: 2007. 从双倍数组中还原原数组 + 哈希表 + 排序】一个整数数组 original 可以转变成一个 双倍 数组 changed ,转变方式为将 original 中每个元素 值乘以 2 加入数组中,然后将所有元素 随机打乱 。给你一个数组 changed ,如果 change 是 双倍 数组,那么请你返回 original数组,否则请返回空数组。original 的元素可以以 任意 顺序返回。原创 2024-04-18 14:17:00 · 542 阅读 · 0 评论 -
【LeetCode: 189. 轮转数组 + 双指针】
【LeetCode: 189. 轮转数组 + 双指针】给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。原创 2024-04-17 22:36:27 · 986 阅读 · 0 评论 -
【LeetCode: 785. 判断二分图 + bfs】
【LeetCode: 785. 判断二分图 + bfs】存在一个 无向图 ,图中有 n 个节点。其中每个节点都有一个介于 0 到 n - 1 之间的唯一编号。给你一个二维数组 graph ,其中 graph[u] 是一个节点数组,由节点 u 的邻接节点组成。形式上,对于 graph[u] 中的每个 v ,都存在一条位于节点 u 和节点 v 之间的无向边。该无向图同时具有以下属性:不存在自环(graph[u] 不包含 u)。不存在平行边(graph[u] 不包含重复值)。如果 v 在 graph[u]原创 2024-04-16 22:33:45 · 786 阅读 · 0 评论 -
【LeetCode: 3117. 划分数组得到最小的值之和 + 动态规划】
【LeetCode: 3117. 划分数组得到最小的值之和 + 动态规划】给你两个数组 nums 和 andValues,长度分别为 n 和 m。数组的 值 等于该数组的 最后一个 元素。你需要将 nums 划分为 m 个 不相交的连续 子数组,对于第 ith 个子数组 [li, ri],子数组元素的按位AND运算结果等于 andValues[i],换句话说,对所有的 1原创 2024-04-15 21:56:09 · 1033 阅读 · 0 评论 -
【LeetCode: 705. 设计哈希集合 + 数据结构设计】
【LeetCode: 705. 设计哈希集合 + 数据结构设计】不使用任何内建的哈希表库设计一个哈希集合(HashSet)。实现 MyHashSet 类:void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。原创 2024-04-14 18:28:09 · 540 阅读 · 0 评论 -
【LeetCode: 2924. 找到冠军 II + 图 + 遍历】
【LeetCode: 2924. 找到冠军 II + 图 + 遍历】一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图(DAG) 上的一个节点。给你一个整数 n 和一个下标从 0 开始、长度为 m 的二维整数数组 edges 表示这个有向无环图,其中 edges[i] = [ui, vi] 表示图中存在一条从 ui 队到 vi 队的有向边。从 a 队到 b 队的有向边意味着 a 队比 b 队 强 ,也就是 b 队比 a 队 弱 。在这场比赛中,如果不存在某支强原创 2024-04-13 12:00:06 · 930 阅读 · 0 评论 -
【LeetCode: 977. 有序数组的平方 + 双指针】
【LeetCode: 977. 有序数组的平方 + 双指针】给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。原创 2024-04-12 21:23:53 · 450 阅读 · 0 评论 -
【LeetCode: 680. 验证回文串 II + 贪心 + 边界处理】
【LeetCode: 680. 验证回文串 II + 贪心 + 边界处理】给你一个字符串 s,最多 可以从中删除一个字符。请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false 。原创 2024-04-11 23:09:18 · 748 阅读 · 0 评论 -
【LeetCode: 628. 三个数的最大乘积 + 排序 + 贪心】
【LeetCode: 628. 三个数的最大乘积 + 排序 + 贪心】给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。原创 2024-04-10 21:52:07 · 486 阅读 · 0 评论 -
【LeetCode: 2529. 正整数和负整数的最大计数 + 模拟 + 计数】
【LeetCode: 2529. 正整数和负整数的最大计数 + 模拟 + 计数】给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。换句话讲,如果 nums 中正整数的数目是 pos ,而负整数的数目是 neg ,返回 pos 和 neg二者中的最大值。注意:0 既不是正整数也不是负整数。原创 2024-04-09 20:24:47 · 572 阅读 · 0 评论 -
【LeetCode: 455. 分发饼干 + 贪心】
【LeetCode: 455. 分发饼干 + 贪心】假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。原创 2024-04-07 21:45:24 · 857 阅读 · 0 评论 -
【LeetCode: 21. 合并两个有序链表 + 链表】
【LeetCode: 21. 合并两个有序链表 + 链表】将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2024-04-06 15:19:43 · 637 阅读 · 0 评论 -
【LeetCode: 1026. 节点与其祖先之间的最大差值 + DFS】
【LeetCode: 1026. 节点与其祖先之间的最大差值 + DFS】给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)原创 2024-04-05 13:17:54 · 914 阅读 · 0 评论 -
【LeetCode: 95. 不同的二叉搜索树 II + DFS】
【LeetCode: 95. 不同的二叉搜索树 II + DFS】给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。原创 2024-04-04 10:40:32 · 681 阅读 · 0 评论 -
【LeetCode: 面试题 16.02. 单词频率 + 哈希表】
【LeetCode: 面试题 16.02. 单词频率 + 哈希表】设计一个方法,找出任意指定单词在一本书中的出现频率。你的实现应该支持如下操作:WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率示例:WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", "he", "have", "a", "pen"});wor原创 2024-04-01 21:10:20 · 411 阅读 · 0 评论 -
【LeetCode: 331. 验证二叉树的前序序列化 + DFS】
【LeetCode: 331. 验证二叉树的前序序列化 + DFS】序列化二叉树的一种方法是使用 前序遍历 。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。原创 2024-03-31 13:08:39 · 770 阅读 · 0 评论 -
【LeetCode: 330. 按要求补齐数组 + 贪心 + 构造区间】
【LeetCode: 330. 按要求补齐数组 + 贪心 + 构造区间】给定一个已排序的正整数数组 nums ,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请返回 满足上述要求的最少需要补充的数字个数 。原创 2024-03-30 11:10:54 · 889 阅读 · 0 评论 -
【LeetCode: 面试题 16.05. 阶乘尾数 + 阶乘】
【LeetCode: 面试题 16.05. 阶乘尾数 + 阶乘】设计一个算法,算出 n 阶乘有多少个尾随零。原创 2024-03-29 20:51:24 · 493 阅读 · 0 评论 -
【LeetCode: 994. 腐烂的橘子 + BFS】
【LeetCode: 994. 腐烂的橘子 + BFS】在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:- 值 0 代表空单元格;- 值 1 代表新鲜橘子;- 值 2 代表腐烂的橘子。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。原创 2024-03-28 21:25:49 · 739 阅读 · 0 评论 -
【LeetCode: 2580. 统计将重叠区间合并成组的方案数 + 合并区间】
【LeetCode: 2580. 统计将重叠区间合并成组的方案数 + 合并区间】给你一个二维整数数组 ranges ,其中 ranges[i] = [starti, endi] 表示 starti 到 endi 之间(包括二者)的所有整数都包含在第 i 个区间中。你需要将 ranges 分成 两个 组(可以为空),满足:每个区间只属于一个组。两个有 交集 的区间必须在 同一个 组内。如果两个区间有至少 一个 公共整数,那么这两个区间是 有交集 的。比方说,区间 [1, 3] 和 [2, 5]原创 2024-03-27 21:10:48 · 872 阅读 · 0 评论