3K+ 次查看
假设我们有一个二叉搜索树,我们必须找到一个具有相同节点值的平衡二叉搜索树。当且仅当每个节点的两个子树的深度之差不大于 1 时,二叉搜索树才被认为是平衡的。如果有多个结果,则返回其中任何一个。因此,如果树是这样的 - 要解决这个问题,我们将遵循以下步骤 - 定义 inorder() 方法,这将把顺序遍历序列存储到一个数组中定义 construct 方法(),这将采用 low 和 high - 如果 low > high ... 阅读更多
549 次查看
假设我们想要设计一个支持以下操作的栈。CustomStack(int maxSize) 这将使用 maxSize 初始化对象,maxSize 是栈中元素的最大数量,如果栈达到 maxSize,则什么也不做。void push(int x) 如果栈尚未达到 maxSize,则将 x 插入栈顶。int pop() 这将删除并返回栈顶,如果栈为空,则返回 -1。void inc(int k, int val) 这将把栈的底部 k 个元素增加 val。如果栈中少于 k 个元素,则只增加所有 ... 阅读更多
584 次查看
假设我们有两个二叉树 original 和 cloned,并在原始树中给定对节点 target 的引用。克隆树实际上是原始树的副本。我们必须在克隆树中找到对同一节点的引用。因此,如果树如下所示,目标是 3,则输出将是 3。要解决这个问题,我们将遵循以下步骤 - 定义一个名为 solve() 的方法,这将采用 node1m node2 和 target 如果 node1 为空,则返回 nullif node1 是 target 且 node 1 的值为 ... 阅读更多
413 次查看
假设我们有一家公司有 n 个员工,每个员工都有一个唯一的 ID。这些 ID 的范围从 0 到 n - 1。公司的负责人是 headID 的人。每个员工都有一个直接经理,在 manager 数组中给出,其中 manager[i] 是第 i 个员工的直接经理,manager[headID] = -1。还可以保证从属关系具有树状结构。这里,公司负责人想向公司所有员工通报一个紧急新闻。他可以通知他的直接下属,他们 ... 阅读更多
370 次查看
假设我们有一个房间里有 n 个灯泡,这些灯泡编号从 1 到 n,从左到右排列成一行。最初,所有灯泡都关闭。在时刻 k(对于 k 的范围为 0 到 n - 1),我们打开 light[k] 灯泡。只有当灯泡打开且所有前面的灯泡(左侧)也打开时,灯泡才会变成蓝色。我们必须找到所有打开的灯泡都是蓝色的时刻数。这是一个例子 - 输出将是 3,因为时刻 ... 阅读更多
794 次查看
假设我们有一个二叉树根,二叉树的之字形路径定义如下 - 选择二叉树中的任何节点和方向(向右或向左)。如果当前方向向右,则向当前节点的右子节点移动,否则向左子节点移动。然后将方向从右更改为左,反之亦然。重复第二和第三步,直到我们无法在树中移动。这里的之字形长度定义为访问的节点数 - 1。(单个节点的长度为 0)。我们必须找到 ... 阅读更多
317 次查看
假设我们有字符串 s,我们必须找到包含每个元音出现偶数次的**最长子字符串**的大小。也就是说,'a'、'e'、'i'、'o' 和 'u' 必须出现偶数次。因此,如果字符串是“helloworld”,则输出将是 8。要解决这个问题,我们将遵循以下步骤 - ret := 0,定义两个映射 m 和 cnt,设置 m[“00000”] := -1 将元音存储到元音数组中对于 i 的范围为 0 到 s 的大小 x := s[i],并且 ok := false 将 cnt[x] 增加 1,设置 temp := 空字符串对于 k 的范围为 ... 阅读更多
2K+ 次查看
假设我们有一个二叉树根和一个链表,其头部作为第一个节点。如果从头部开始的链表中的所有元素都对应于二叉树中连接的一些向下路径,则返回 True,否则返回 False。因此,如果树是这样的 - 并且链表是 [1, 4, 2, 6],则输出将为 true。要解决这个问题,我们将遵循以下步骤 - 定义一个映射 dp 定义一个名为 solve() 的方法,这将采用 head、root 和 flag 如果 head 为空,则返回 true,或者如果 ... 阅读更多
325 次查看
假设我们有一个整数 num,我们必须找到绝对差值最接近的两个整数,其乘积等于 num + 1 或 num + 2。我们必须以任何顺序找到这两个整数。因此,如果输入是 8,则输出将是 [3, 3],对于 num + 1,它将是 9,最接近的除数是 3 和 3,对于 num + 2 = 10,最接近的除数是 2 和 5,因此选择 3 和 3。要解决这个问题,我们将遵循以下步骤 - 定义一个名为 getDiv() 的方法,这将采用 x 作为输入 diff := infinity,创建一个名为 ret 的大小为 2 的数组对于 i := 1,如果 i^2
319 次查看
假设我们有 n 个从 0 到 n - 1 编号的二叉树节点,其中节点 I 具有两个子节点 leftChild[i] 和 rightChild[i],我们必须说 true 当且仅当所有给定的节点恰好形成一个有效的二叉树。当节点 i 没有左子节点时,leftChild[i] 将等于 -1,右子节点也类似。我们必须记住,节点没有值,并且我们在这个问题中只使用节点编号。因此,如果输入是这样的 - 那么输出将是 true。要解决这个问题,我们将遵循以下 ... 阅读更多