277 次浏览
假设我们有一个包含 n 个顶点的无向树。顶点编号从 1 到 n。现在一只青蛙从顶点 1 开始跳跃。青蛙可以从其当前顶点跳到另一个未访问的顶点(如果它们相邻),时间为一秒。青蛙不能跳回已访问的顶点。如果青蛙可以跳到多个顶点,它会随机跳到其中一个顶点,概率相同,否则,当青蛙无法跳到任何未访问的顶点时,它会永远停留在同一个顶点上。树以数组的形式给出... 阅读更多
369 次浏览
假设我们有一个二叉树根节点,我们需要找到任何也是二叉搜索树 (BST) 的子树的所有节点的最大和。因此,如果输入类似于,则输出将为 20,这是所选 BST 中所有节点的总和。为了解决这个问题,我们将遵循以下步骤:创建名为 Data 的块,它将保存一些成员,例如 sz、maxVal、minVal、ok 和 sum。还为数据定义一个初始化器,它将按此顺序输入(sz、minVal、maxVal、ok,并将 sum 设置为 0)ret := 0定义一个名为 solve() 的方法,... 阅读更多
111 次浏览
假设我们有一个数字数组,我们需要找到可以通过以任何我们想要的顺序连接一些给定数字来形成的最大三的倍数。答案可能非常大,所以将其作为字符串。如果没有答案,则返回空字符串。因此,如果输入类似于 [7, 2, 8],则输出将为 87为了解决这个问题,我们将遵循以下步骤:定义一个二维数组 d,它将有三行对数组 digits 进行排序sum := 0for 初始化 i := 0,当 i < digits 的大小,更新 ... 阅读更多
171 次浏览
假设我们有一个包含 n 个订单的列表,每个订单都有取件和送货服务。我们需要计算所有有效的取件/送货可能的序列,这样 delivery[i] 始终在 pickup[i] 之后。由于答案可能非常大,我们将将其返回模 10^9 + 7。因此,如果输入类似于 2,则输出将为 6,因为所有可能的订单是 (P1, P2, D1, D2)、(P1, P2, D2, D1)、(P1, D1, P2, D2)、(P2, P1, D1, D2)、(P2, P1, D2, D1) 和 (P2, D2, P1, D1)。并且订单 (P1, D2, P2, D1) 无效 ... 阅读更多
87 次浏览
假设我们有一个整数数组 target。从一个最初由所有 1 组成的数组 A 开始,我们可以执行以下过程:将 x 视为当前数组中所有元素的总和。选择索引 i,范围为 0 到 n,其中 n 是数组的大小,并将 A 在索引 i 处的值设置为 x。我们可以根据需要重复此过程多次。我们需要检查是否可以从 A 生成目标数组,否则返回 False。因此,如果输入类似于 [3, 9, 5],则输出将 ... 阅读更多
266 次浏览
假设我们有一个名为 arr 的整数数组。我们最初位于索引 0 处。一步之内,我们可以从索引 i 跳到 i + x,其中:i + x < n。i - x,其中:i - x >= 0。j,其中:arr[i] 和 arr[j] 相同,并且 i 和 j 不相同。这里 n 是数组的大小。我们需要找到到达数组最后一个索引的最小步数。因此,如果输入类似于,则输出将为 3,我们需要从索引 0 跳到 ... 阅读更多
564 次浏览
假设我们有一个名为 arr 的整数数组和一个整数 d。一步之内,我们可以从索引 i 跳到:−i + x,其中:i + x < n 且 x 范围为 1 到 d。i - x,其中:i - x >= 0 且 x 范围为 1 到 d。这里 n 是数组的大小。此外,我们只能从索引 i 跳到索引 j,当 arr[i] > arr[j] 且 arr[i] > arr[k] 对于 i 和 j 之间的所有索引 k。我们可以选择数组的任何索引并开始跳跃。 ... 阅读更多
315 次浏览
假设我们要在 d 天内安排一个任务列表。任务是相关的,因此要处理第 i 个任务,我们必须完成所有任务 j,其中 0 0,则:−return 1^6如果 dp[idx, k] 不等于 -1,则:−return dp[idx, k]maxVal := 0ret := inffor 初始化 i := idx,当 i < v 的大小,更新(增加 i 1),执行:−maxVal := v[i] 和 maxVal 的最大值ret := ret 和 maxVal + solve(v, i + 1, k - 1, dp) 的最小值dp[idx, k] := retreturn ret从主方法中执行 ... 阅读更多
432 次浏览
假设我们有一个名为 nums 的整数数组。此数组的值定义为所有 i 范围为 0 到 n - 1 的 |nums[i]-nums[i+1]| 之和。其中 n 是数组的大小。我们可以选择给定数组的任何子数组并将其反转。我们只能执行此操作一次。然后我们需要找到最终数组的最大可能值。因此,如果输入类似于 [1, 5, 4, 2, 3],则输出将为 10。为了解决这个问题,我们将遵循以下步骤:ret := 0,extra := 0n := ... 阅读更多
292 次浏览
假设在 x 轴上有一个一维花园。花园的起始位置为 0,结束位置为 n。花园中在点 [0, 1, ..., n] 处有 n + 1 个水龙头。如果我们有一个整数 n 和一个长度为 n + 1 的整数数组范围,其中 ranges[i] 是第 i 个水龙头可以在打开时浇灌区域 [i - ranges[i], i + ranges[i]]。我们需要找到应打开多少个水龙头才能浇灌整个花园,如果没有可能的解决方案,则返回 ... 阅读更多