215 次查看
假设我们得到一个正数列表。现在,我们可以移除任意长度为 t 的连续子列表,并且这些子列表中的值都相同,然后获得 t * t 的点数。需要考虑一个条件,即我们可以执行此操作任意次数,直到列表为空。所以我们必须确定可以获得的最大点数。因此,如果输入类似于 nums = [4, 4, 6, 4, 4],则输出将为 17。对于输出,我们可以首先移除值为 6 的元素,其长度为 1,产生 1 * ... 阅读更多
345 次查看
假设我们得到一个非负数列表和一个正值 k。我们必须找到数字的最大和子序列,使得该和可以被 k 整除。因此,如果输入类似于 nums = [4, 6, 8, 2],k = 2,则输出将为 20。整个数组的和为 20,可以被 2 整除。为了解决这个问题,我们将遵循以下步骤:numsSum := 输入列表 nums 中值的总和remainder := numsSum 模 k如果 remainder 与 0 相同,则返回 numsSum对列表 nums 进行排序对于每个数字组合 tpl in ... 阅读更多
391 次查看
假设我们得到一个数字列表和另一个值 k。这次我们的任务是找到最长子序列的长度,其中每个相邻元素之间的绝对差最多为 k。因此,如果输入类似于 nums = [5, 6, 2, 1, −6, 0, −1],k = 4,则输出将为 6。为了解决这个问题,我们将遵循以下步骤:定义一个函数 update()。这将接收 i,xi := i + n当 i 不为零时,执行segtree[i] := segtree[i] 和 xi 的最大值 xi := i / 2定义一个函数 query()。这将 ... 阅读更多
178 次查看
假设我们得到两个数字列表 nums0 和 nums1,以及一个整数 k。我们的目标是找到 k 个最大的和对,其中每对包含 nums0 中的一个整数和 nums1 中的另一个整数。必须返回所有对的总和。因此,如果输入类似于 nums1 = [8, 6, 12],nums2 = [4, 6, 8],k = 2,则输出将为 38。我们有以下最大的对 [12, 8] 和 [12, 6]。为了解决这个问题,我们将遵循以下步骤:如果 k > len(nums0) * len(nums1) 是 ... 阅读更多
114 次查看
假设我们得到一个数字列表 nums。我们必须找到存在的四元组 (a, b, c, d) 的数量,使得 a < b < c < d 且 nums[a] < nums[b] 且 nums[c] > nums[d]。数组 nums 是整数 1...N 的排列因此,如果输入类似于 nums = [3, 4, 7, 6, 5],则输出将为 5。从给定的输入中,我们有以下反向逆序:3, 4, 7, 63, 4, 6, 53, 4, 7, 53, 7, 6, 54, 7, 6, 5为了解决这个问题,我们将遵循以下步骤:m ... 阅读更多
251 次查看
假设我们得到一个无向图,它以邻接列表的形式表示,其中 graph[i] 表示节点 i 的邻居节点。我们必须找到满足以下条件的边的数量。如果移除该边,则图将断开连接。因此,如果输入类似于 graph = [ [0, 2], [0, 4], [1, 2, 3], [0, 3, 4], [4], [3], [2] ],则输出将为 1。为了解决这个问题,我们将遵循以下步骤:定义一个函数 dfs()。这将接收 curr, pre, dans := 无穷大dep[curr] := ... 阅读更多
714 次查看
假设我们得到两个正整数 n 和 d,其中 d 是 0 到 9 之间的数字。我们必须确定数字 d 在 1 到 n 之间的整数中出现的次数。因此,如果输入类似于 n = 45,d = 5,则输出将为 5。这些数字包含数字 5:[5, 15, 25, 35, 45]。为了解决这个问题,我们将遵循以下步骤:定义一个函数 solve()。这将接收 n 和 d 作为输入。如果 n < 0,则返回 0k := floor of (n /10) − 1ans := solve(k, ... 阅读更多
1K+ 次查看
假设我们有一个 N x N 的货币汇率表。我们必须检查是否存在我们可以进行的一些交易序列。现在,从任意货币的某个金额 A 开始,我们可以最终获得超过 A 的该货币金额。没有交易成本,我们还可以交易小数数量。此矩阵中条目 [I, j] 的值表示我们可以用一个单位的货币 i 购买的货币 j 的数量。现在考虑货币 0 是美元,1 是加元,2 是欧元。我们可以 ... 阅读更多
150 次查看
假设我们得到图作为邻接列表。该图实际上是一组不相交的树。我们必须向森林中添加一定数量的边,使其成为一棵树。我们必须返回任意两个节点之间最长路径的最小可能距离。因此,如果输入类似于,则输出将为 4。我们可以添加边 0 −> 5。然后,最长路径可以是 3 −> 1 −> 0 −> 5 −> 7 或 4 −> 1 −> 0 −> 5 −> 7;以及这些 ... 阅读更多
145 次查看
假设我们得到一个区间列表(包含),这些区间可能重叠。现在考虑一个操作,我们删除一个区间,然后合并剩余的区间,然后计算剩余的区间数。我们必须找到移除后可能的最大剩余区间数。因此,如果输入类似于 intervals = [ [5, 8], [6, 7], [7, 10], [9, 11]],则输出将为 2。这是因为:如果我们删除区间 [5, 8],则得到 [6, 11] 作为合并结果。如果我们删除区间 [6, 7],则得到 [5, 11] 作为 ... 阅读更多