119 次浏览
假设我们有一个名为 nums 的数字列表。我们必须找到一个相同长度的新列表,其中索引 i 处的值被赋予其右侧大于 nums[i] 的下一个元素,根据需要循环回到列表的前面。如果没有大于的数字,则应将其设置为 -1。因此,如果输入类似于 [4, 5, 1, 3],则输出将为 [5, -1, 3, 4]。为了解决这个问题,我们将遵循以下步骤:n := 列表大小,stack := 一个栈,初始插入 0,res := ... 阅读更多
256 次浏览
假设我们有一个单链表节点,我们必须找到中间节点的值。当有两个中间节点时,我们将返回第二个。我们必须尝试在一遍扫描中解决这个问题。因此,如果输入类似于 [5, 9, 6, 4, 8, 2, 1, 4, 5, 2],则输出将为 2。为了解决这个问题,我们将遵循以下步骤:p:= 节点,d:= 0,l:= 0,当节点不为空时,执行:如果 d 不等于 2,则节点:= 下一个节点,l := l + 1,d := d + 1,否则,p:= 下一个节点... 阅读更多
402 次浏览
假设我们有一系列卡片,我们想以某种方式排列卡片,以便它们以升序显示。众所周知,卡片的显示方式如下:1. 移去最上面的卡片并显示,然后下一张卡片移到后面。2. 重复步骤 1,直到没有更多卡片。我们必须找到卡片的排序方式,以便它们以升序显示。因此,如果输入类似于 cards = [1, 2, 3, 4, 5, 6, 7, 8],则输出将为... 阅读更多
434 次浏览
假设我们有两个长度相同的非空字符串 s 和 t。我们必须将它们分割成子字符串,使得 s 和 t 的每一对子字符串的大小相同,并且它们是彼此的回文词。现在找到切割索引,使其产生 s 和 t 的最大切割数。如果没有找到结果,则返回空列表。因此,如果输入类似于 s = "bowcattiger" t = "owbactietgr",则输出将为 [0, 3, 5, 6, 10],因为我们可以将字符串分割成 5... 阅读更多
363 次浏览
假设我们有一个名为 nums 的数字列表,现在考虑每个连续子数组。对这些子数组中的每一个求和,并返回所有这些值的和。最后,将结果模 10 ** 9 + 7。因此,如果输入类似于 nums = [3, 4, 6],则输出将为 43,因为我们有以下子数组:[3] [4] [6] [3, 4] [4, 6] [3, 4, 6] 所有这些的总和是 43。为了解决这个问题,我们将遵循以下步骤:N:= nums 的大小,ans:= 0,对于从 0 到 nums 大小的范围内的 i,执行:n:= nums[i],ans ... 阅读更多
317 次浏览
假设我们有一个名为 nums 的数字列表和另一个数字 k。如果我们从索引 k 开始,并且在任何索引 i 处,我们可以向左或向右移动恰好 nums[i] 步。我们必须检查我们是否可以到达列表的末尾。因此,如果输入类似于 nums = [0, 0, 2, 1, 3, 3, 1, 1] k = 2,则输出将为 True,因为如果我们从索引 2 开始,则跳转到索引 4,然后跳转到最后一个索引 7。为了解决这个问题,我们将... 阅读更多
186 次浏览
假设我们有一个有 n 个台阶的楼梯,我们还有一个数字 k,最初我们在台阶 0,我们可以一次向上爬 1、2 或 3 个台阶。但我们最多只能爬 3 个台阶 k 次。现在我们必须找到我们可以爬楼梯的方法数量。因此,如果输入类似于 n = 5,k = 2,则输出将为 13,因为有不同的方法可以爬楼梯:[1, 1, 1, 1, 1][2, 1, 1, 1][1, 2, 1, 1][1, 1, 2,... 阅读更多
292 次浏览
假设我们有一个有 n 个台阶的楼梯,我们可以一次向上爬 1 或 2 个台阶。我们必须定义一个函数,返回我们可以爬楼梯的唯一方法的数量。步骤的顺序不应该改变,因此每个不同的步骤顺序都算作一种方法。如果答案非常大,则将结果模 10^9 + 7。因此,如果输入类似于 n = 5,则输出将为 8,因为有 8 种唯一的方法:1, 1, 1, 1, 1 2, 1, 1, 1 1, 2,... 阅读更多
1K+ 次浏览
假设我们有一个名为 nums 的数字列表,它显示一条线上的公交车站,其中 nums[i] 显示公交车必须到达站点 i 的时间。现在,公交车只能向前移动,我们必须找到通过所有站点所需的最少公交车数量。因此,如果输入类似于 nums = [1, 2, 7, 9, 3, 4],则输出将为 2,因为一辆公交车可以乘坐站点 [1, 2, 3, 4],而另一辆可以乘坐 [7, 9]。为了解决这个问题,我们将遵循以下步骤:ans := 0,seen ... 阅读更多
928 次浏览
假设我们有两个二进制字符串 a 和 b,我们必须添加这些二进制数并找到它们的和,也作为字符串。因此,如果输入类似于 a = "10110",b = "10010",则输出将为 "101000"。为了解决这个问题,我们将遵循以下步骤:ret := 空字符串,na := a 的大小,nb := b 的大小,i := na - 1,j := nb - 1,carry := 0,当 (i >= 0 或 j >= 0) 时,执行:addA := (如果 i >= 0,则 a[i] - '0' 的 ASCII 值,否则为 0),addB := (如果 j >= 0,则 b[j]... 阅读更多