
LeetCode
weiambt
研究生在读,专注于算法、后端、大模型、AI等领域,擅长Java,Python,Golang。记录学习历程,分享学习心得,欢迎大家交流讨论。
展开
-
【力扣每日一题】有向无环图中一个节点的所有祖先
给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者)。给你一个二维整数数组 edges ,其中 edges[i] = [fromi, toi] 表示图中一条从 fromi 到 toi 的单向边。请你返回一个数组 answer,其中 answer[i]是第 i 个节点的所有 祖先 ,这些祖先节点 升序 排序。原创 2024-04-05 21:08:06 · 497 阅读 · 1 评论 -
【力扣每日一题】1026. 节点与其祖先之间的最大差值
给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)树中的节点数在 2 到 5000 之间。原创 2024-04-05 19:44:47 · 216 阅读 · 0 评论 -
【力扣每日一题】或值至少为 K 的最短子数组 II
给你一个 非负 整数数组 nums 和一个整数 k。如果一个数组中所有元素的按位或运算 OR 的值 至少 为 k ,那么我们称这个数组是 特别的。请你返回 nums 中 最短特别非空子数组的长度,如果特别子数组不存在,那么返回 -1。原创 2024-04-03 14:44:48 · 284 阅读 · 0 评论 -
【力扣每日一题】2908. 元素和最小的山形三元组 I
我们发现,如果枚举j的前提下,我还需要用O(n)找到前缀/后缀的最小值,其实这一步可以用预处理的方式在循环外部先计算出来,最后再以O(1)去调用即可。这个三元组的元素和等于 nums[2] + nums[3] + nums[4] = 9。解释:三元组 (2, 3, 4) 是一个元素和等于 9 的山形三元组,因为: 2 < 3 < 4。nums[i] < nums[j] 且 nums[k] < nums[j]nums[2] < nums[3] 且 nums[4] < nums[3]预处理前后缀O(n)原创 2024-03-29 16:36:59 · 487 阅读 · 0 评论 -
【力扣每日一题】lc1793. 好子数组的最大分数(单调栈)
对于任意的元素nums[i],我们想要知道在其左边和右边第一个比它小的元素,这个可以用单调栈从O(n)优化成O(1)原创 2024-03-20 13:58:27 · 399 阅读 · 0 评论 -
【力扣每日一题】lc1969. 数组元素的最小非零乘积(思维+构造)
给你一个正整数 p。你有一个下标从 1 开始的数组 nums ,这个数组包含范围 [1, 2p - 1] 内所有整数的二进制形式(两端都 包含)。你可以进行以下操作 任意 次:从 nums 中选择两个元素 x 和 y。选择 x 中的一位与 y 对应位置的位交换。对应位置指的是两个整数 相同位置 的二进制位。比方说,如果 x = 1101 且 y = 0011 ,交换右边数起第 2 位后,我们得到 x = 1111 和 y = 0001。原创 2024-03-20 14:58:23 · 363 阅读 · 0 评论