224 次浏览
假设我们有一个链表。我们必须取链表的前半部分,然后将后半部分折叠起来,然后合并相交的节点,取它们的和。最后,我们必须返回结果链表的头节点。因此,如果输入类似于 [5, 8, 1, 2, 4, 7, 5],则输出将为 [2, 5, 15, 10, ]要解决此问题,我们将遵循以下步骤 -temp := 0ptr := node当 ptr 不为空时,执行temp := temp + 1ptr := ptr 的下一个节点t := temp / 2 的商m := nodestk := ... 阅读更多
322 次浏览
假设我们有一个单链表,还有一个称为 target 的值,我们必须删除给定列表中 target 的最后一次出现。因此,如果输入类似于 [5, 4, 2, 6, 5, 2, 3, 2, 4, 5, 4, 7],target = 5,则输出将为 [5, 4, 2, 6, 5, 2, 3, 2, 4, 4, 7, ]要解决此问题,我们将遵循以下步骤 -head := nodek := null,prev := nullfound := False当 node 不为空时,执行如果 node 的值与 target 相同,则found := Trueprev := kk := nodenode := next ... 阅读更多
3K+ 次浏览
假设我们在笛卡尔平面上有一个坐标列表,我们必须检查这些坐标是否形成一条直线段。因此,如果输入类似于 coordinates = [(5, 5), (8, 8), (9, 9)],则输出将为 True,因为这些点形成了一条斜率为 1 的线段。要解决此问题,我们将遵循以下步骤 -(x0, y0) := coordinates[0](x1, y1) := coordinates[1]对于 i 从 2 到 coordinates 列表的大小 - 1,执行(x, y) := coordinates[i]如果 (x0 - x1) * (y1 - y) 不等于 (x1 - x) * (y0 ... 阅读更多
315 次浏览
假设我们有一个字符串 s,它是回文。我们必须更改一个字符,以便 s 不再是回文,并且它是字典序最小的。因此,如果输入类似于 s = "level",则输出将为 "aevel",因为我们可以将第一个 "l" 更改为 "a" 以获得字典序最小的非回文字符串。要解决此问题,我们将遵循以下步骤 -对于 i 从 0 到 (s 的大小 / 2) 的整数部分,执行如果 s[i] 不等于 "a",则s := 从 s 中所有字符生成的新列表s[i] := ... 阅读更多
89 次浏览
假设我们有两个大小相同的字符串 s 和 t,我们必须检查 s 的某个排列(例如 s1)和 t 的某个排列(例如 t1)是否满足:对于所有 0 ≤ i < n,s1[i] ≤ t1[i] 或对于所有 0 ≤ i < n,t1[i] ≤ s1[i]。因此,如果输入类似于 s = "vyx" t = "wzx",则输出将为 True,因为我们可以有 s1 = "vxy" 和 t1 = "wxz"。要解决此问题,我们将遵循以下步骤 -如果 s 和 t 为空,则返回 Trues := 对 s 进行排序 ... 阅读更多
428 次浏览
假设我们有一个塔高列表和一个正值 k。我们希望选择 k 个塔楼并通过添加更多砖块使它们都具有相同的高度,但使用尽可能少的砖块。我们必须找到选择 k 个塔楼并使它们具有相同高度所需的最小砖块数。因此,如果输入类似于 heights = [4, 7, 31, 14, 40] k = 3,则输出将为 17,因为我们可以选择 5、8 和 15,这需要 17 块砖才能使高度相同。要解决此问题,我们将 ... 阅读更多
244 次浏览
假设我们有一个数字列表,称为 nums,它表示一个环形列表。我们必须找到非相邻数字的最大和。因此,如果输入类似于 nums = [10, 3, 4, 8],则输出将为 14,因为我们可以取 10 和 4。我们不能取 10 和 8,因为它们是相邻的。要解决此问题,我们将遵循以下步骤 -n := nums 的大小nums1 := nums[从索引 0 到 n - 2]nums2 := nums[从索引 1 到结束]定义一个函数 f()。这将采用 i如果 i >= nums1 的大小,则返回 ... 阅读更多
215 次浏览
假设我们有一个数字列表,称为 nums,以及另一个值 k,它表示 nums 连接 k 次的大列表。我们必须找到具有最大和的连续子列表的和。因此,如果输入类似于 nums = [1, 3, 4, -5],k = 1,则输出将为 11,因为我们可以取类似于 [2, 4, 5] 的子列表要解决此问题,我们将遵循以下步骤 -s := ans := lo := 0对于所有范围从 0 到 k 和 2 的最小值,执行对于 nums 中的每个 x,执行s := s ... 阅读更多
339 次浏览
假设我们有一个二进制矩阵。这里 1 表示陆地,0 表示水,岛屿是一组 1,它们是相邻的,其周长被水包围。我们可以假设矩阵的边缘被水包围。我们必须找到矩阵中最大岛屿的面积。因此,如果输入类似于001111100000000111100001100000000110000010则输出将为 6。要解决此问题,我们将遵循以下步骤 -定义一个函数 dfs()。这将采用矩阵、r、ctotal := total + 1matrix[r, c] := 0如果 r - 1 >= 0 并且 matrix[r - 1, ... 阅读更多
127 次浏览
假设我们有两个数字列表,称为 A 和 B,它们长度相同。我们必须找到对于所有 0 ≤ i < j < n 的最大值:|a[i] - a[j]| + |b[i] - b[j]| + |i - j|因此,如果输入类似于 A = [2, 4, 10, 6] B = [3, 4, 7, 5],则输出将为 14,因为当 i = 0 且 j = 2 时,我们得到 |2 - 10| + |3 - 7| + |1 - 3|。要解决此问题,我们将遵循以下步骤 -ans := 0n := ... 阅读更多