2K+ 阅读量
假设我们有一组不重叠的区间;我们需要将一个新的区间插入到这些区间中。如果需要,我们可以合并它们。因此,如果输入类似于 - [[1, 4], [6, 9]],而新区间是 [2, 5],则输出将是 [[1, 5], [6, 9]]。为了解决这个问题,我们将遵循以下步骤 - 将新区间插入到先前区间列表的末尾根据区间的起始时间对区间列表进行排序,n := 区间数创建一个名为 ans 的数组,将第一个区间插入到 ans 中index := 1当 index < n 时,last := 大小 ... 阅读更多
753 阅读量
假设我们有一个整数数组,其中所有元素都是正数。初始起点位于索引 1。数组中的每个元素表示我们在该位置的最大跳跃长度。我们的目标是以最少的跳跃次数到达最后一个单元格。因此,如果数组类似于 [2, 3, 1, 1, 4],则输出将为 2,因为我们可以从 0 跳到索引 1,然后跳到索引 4,即最后一个索引。为了解决这个问题,我们将遵循以下步骤 - end := 0,jumps := 0,farthest := 0for ... 阅读更多
4K+ 阅读量
假设我们有一个输入字符串 s 和另一个输入字符串 p。这是主字符串,p 是模式。我们需要定义一个方法,可以在字符串中匹配模式。因此,我们需要为此实现一个正则表达式,该表达式支持像“?”和“*”这样的通配符。点“?”匹配任何单个字符星号“*”匹配零个或多个字符。因此,例如,如果输入类似于 s = “aa” 和 p = “a?”,则它将为真,对于相同的输入字符串,如果模式是“?*”,则它将为真。为了解决这个问题,... 阅读更多
851 阅读量
假设我们有一个包含 n 个非负整数的数组。这些表示海拔图,其中每个条的宽度为 1,我们需要计算下雨后它能够接住多少水。因此,地图将类似于 - 在这里我们可以看到有 6 个蓝色方块,所以输出将是 6。为了解决这个问题,我们将遵循以下步骤 - 定义一个栈 st,water := 0 和 i := 0当 i < heigh 的大小时,如果栈为空或 height[stack top] >= height[i],则将 i 推入栈中,将 i 增加 1否则x := ... 阅读更多
768 阅读量
假设我们有一个未排序的整数数组;我们需要找到最小的缺失正数。因此,如果数组类似于 [4, -3, 1, -1],则结果将为 2。为了解决这个问题,我们将遵循以下步骤 - 设置 i := 0 并通过在所有数字之前添加一个 0 来更新数组 nums对于 i 的范围从 0 到 nums 的长度当 nums[i] >= 0 且 nums[i] < nums 的长度且 nums[nums[i]] 不等于 nums[i] 时 -nums[nums[i]] := nums[i]nums[i] := nums[nums[i]]num := 1对于 i 的范围从 1 到 num 的长度如果 num = nums[i],则将 num 增加 1返回 num示例让 ... 阅读更多
16K+ 阅读量
假设我们有一个数独网格,我们需要解决这个著名的数字迷宫问题,数独。我们知道数独是一个 9 x 9 的数字网格,整个网格也分成 3 x 3 的方块有一些规则可以解决数独。我们需要使用数字 1 到 9 来解决此问题。一个数字不能在一个行、一列或一个 3 x 3 的方块中重复。使用回溯算法,我们将尝试解决数独问题。当某个单元格填充了一个数字时,它会检查它是否有效。 ... 阅读更多
1K+ 阅读量
假设我们有一个字符串,其中包含开括号和闭括号。我们需要找到有效(格式正确)括号的最长长度。因此,如果输入类似于“))(())())”,则结果将为 6,因为有效字符串是“(())()”。为了解决这个问题,我们将遵循以下步骤 - 创建一个栈,并插入 -1。,设置 ans := 0对于 i 的范围从 0 到栈的长度 – 1如果 s[i] 是开括号,则将 i 插入到栈中否则如果栈不为空且栈顶不是 -1 且 s[stack top] 是开括号,则从栈中弹出栈顶元素ans := max ... 阅读更多
126 阅读量
假设我们有一个字符串 s,我们还有一个单词列表 words,数组中存在的单词都具有相同的长度。我们需要找到 s 中所有子字符串(s)的起始索引,这些子字符串是 words 中每个单词的精确串联,并且没有任何中间字符。因此,如果输入类似于“barfoothefoobarman”并且单词是 [“foo”, “bar”],则输出将是 [0, 9]。这是因为从索引 0 和 9 开始的子字符串分别是“barfoo”和“foobar”。为了解决这个问题,我们将遵循以下步骤 - 定义一个名为 ok() 的方法,它将采用 ... 阅读更多
187 阅读量
假设我们有一个链表,我们需要一次反转链表的 k 个节点并返回其修改后的列表。这里 k 是一个正整数,并且小于或等于链表的长度。因此,如果节点数不是 k 的倍数,则最后的剩余节点应保持原样。因此,如果链表类似于 [1, 2, 3, 4, 5, 6, 7] 并且 k 为 3,则结果将为 [3, 2, 1, 6, 5, 4, 7]。为了解决这个问题,我们将 ... 阅读更多
790 阅读量
假设我们有一些列表,这些列表已排序。我们需要将这些列表合并到一个列表中。为了解决这个问题,我们将使用堆数据结构。因此,如果列表是 [1, 4, 5]、[1, 3, 4]、[2, 6],则最终列表将是 [1, 1, 2, 3, 4, 4, 5, 6]。为了解决这个问题,我们将遵循以下步骤 - 创建一个堆对于 lists 中的每个链表 l - 如果它不为 0,则将 I 插入到堆中res := null 和 res_next := null执行一个无限循环 - temp := 堆的最小值如果堆没有元素,则 ... 阅读更多