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 := 0,for ... 阅读更多
4K+ 次浏览
假设我们有一个输入字符串 s 和另一个输入字符串 p。这是主字符串,p 是模式。我们必须定义一种方法,该方法可以在字符串中匹配模式。因此,我们必须为此实现正则表达式,该表达式支持通配符字符,如“?”和“*”。点“?”匹配任何单个字符星号“*”匹配零个或多个字符。因此,例如,如果输入类似于 s = “aa”而 p = “a?”,则它将为真;对于相同的输入字符串,如果模式为“?*”,则它将为真。为了解决这个问题,... 阅读更多
851 次浏览
假设我们有一个包含 n 个非负整数的数组。这些表示海拔图,其中每条条的宽度为 1,我们必须计算下雨后能够积聚多少水。因此,地图将类似于 - 在这里,我们可以看到有 6 个蓝色方块,因此输出将为 6。为了解决这个问题,我们将遵循以下步骤 - 定义一个堆栈 st,water := 0 和 i := 0,当 i < height 的大小,如果堆栈为空或 height[堆栈顶部] >= 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[堆栈顶部] 是开括号,则从堆栈中取出顶部元素,ans := 最大... 阅读更多
126 次浏览
假设我们有一个字符串 s,我们还有一个单词列表 words,数组中存在的单词长度都相同。我们必须找到 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]。为了解决这个问题,我们将遵循以下步骤 - 创建一个堆,对于列表中的每个链表 l - 如果它不为 0,则将 I 插入堆中,res := null 和 res_next := null,执行一个无限循环 - temp := 堆的最小值,如果堆没有元素,则... 阅读更多