找到 34423 篇文章 关于编程

检查给定的二叉树是否像红黑树一样高度平衡 (C++)

Arnab Chakraborty
更新于 2020年7月23日 07:40:25

181 次浏览

概念关于红黑树,节点的最大高度最多是最小高度的两倍。对于给定的二叉搜索树,我们需要验证以下属性:对于每个节点,从叶节点到节点的最长路径长度不超过从节点到叶节点的最短路径上的节点数的两倍。示例13 41 \ / \ 15 11 101 \ / \ 17 61 151 上述树不能是红黑树 上述树可以是具有任何颜色分配的红黑树 13 的最大高度为 1 13 的最小高度为 3 … 阅读更多

检查表达式中括号是否平衡 - O(1) 空间 - O(N^2) 时间复杂度 (C++)

Arnab Chakraborty
更新于 2020年7月23日 07:38:45

311 次浏览

概念对于给定的包含字符 ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘ 和 ‘]’ 的字符串 str,任务是查找括号是否平衡。如果满足以下条件,则括号被认为是平衡的:- 我们必须用相同类型的括号关闭打开的括号。我们必须按照正确的顺序关闭打开的括号。输入 - str = “(()){}”输出 - 是输入 - str = “))(([][”输出 - 否方法分配两个变量 a 和 b 来跟踪要比较的两个括号。应该维护一个计数,其值在遇到左括号时递增,在遇到右括号时递减。分配 b = ... 阅读更多

使用 C 图形的泛洪填充算法

Arnab Chakraborty
更新于 2020年7月23日 07:34:42

4K+ 次浏览

概念对于给定的矩形,我们的任务是应用泛洪填充算法填充此矩形。输入矩形(left = 50, top = 50, right= 100, bottom = 100) floodFill( a = 55, b = 55, NewColor = 12, OldColor = 0)输出方法// 一个递归函数,用于将之前的颜色 'OldColor' 在 '(a, b)' 和 (a, b) 周围的所有像素替换为新的颜色 'NewColor' 并 floodFill(a, b, NewColor, OldColor)如果 a 或 b 在屏幕外,则返回。如果 getpixel(a, b) 的颜色与 OldColor 相同,则递归顶部、底部、右侧和左侧。floodFill(a+1, b, NewColor, OldColor);

在 C++ 中查找通过从数字中删除最少位数形成的最大立方体

Arnab Chakraborty
更新于 2020年7月23日 07:32:46

117 次浏览

概念对于给定的数字 N,我们的任务是确定可以通过从数字中删除最少的数字(可能是 0)形成的最大完全立方体。因此,可以从给定数字中删除任何数字以达到目标。如果 A = B^3 (对于某个整数 B),则 A 被称为完全立方体。可以看出,如果数字不能是完全立方体,则打印 -1。示例设 N = 1025。可以看出,如果我们从上述数字中删除 0,我们将得到 125 作为剩余数字,这是 5 的立方根 (5 * 5 * ... 阅读更多

在给定的二叉树中查找最大的完整子树 (C++)

Arnab Chakraborty
更新于 2020年7月23日 07:29:39

231 次浏览

概念对于给定的二叉树,任务是确定给定二叉树中最大完整子树的大小。完整二叉树 – 如果所有级别都完全填充(可能除了最后一级),并且最后一级的所有键都尽可能靠左,则二叉树被视为完整二叉树。需要注意的是,所有完全二叉树都是完整二叉树,但反过来并非如此。可以看出,如果树不完整,那么它也不是完全二叉树。输入 2 / \ ... 阅读更多

使用 C++ 中的 RMQ 在二叉树中查找 LCA

Arnab Chakraborty
更新于 2020年7月23日 07:24:02

120 次浏览

概念本文介绍了一种通过将其简化为 RMQ 问题来解决在树中查找两个节点的 LCA 问题的方法。示例在有根树 T 中,两个节点 a 和 b 的最低公共祖先 (LCA) 定义为距离根最远的节点,该节点同时具有 a 和 b 作为后代。例如,根据下图,节点 D 和节点 I 的 LCA 是节点 B。我们可以应用多种方法来解决 LCA 问题。这些方法在时间和空间复杂度方面有所不同。范围最小查询 (RMQ) 应用于 ... 阅读更多

在 C++ 中查找给定数组中具有最大 nCr 值的配对

Arnab Chakraborty
更新于 2020年7月23日 07:17:14

141 次浏览

概念对于给定的 n 个正整数数组 arr[],任务是从数组中确定元素 arr[i] 和 arr[j],使得 arr[i]Carr[j] 最大。对于多个有效对,打印其中任何一个。输入 arr[] = {4, 1, 2}输出 4 2 4C1 = 4 4C2 = 4 2C1 = 4 (4, 2) 是具有最大 nCr 的唯一对。方法nCr 被视为单调递增函数,即 n+1Cr > nCr。我们可以应用这个事实来接近我们的答案;我们将选择所有给定整数中的最大 n。在 ... 阅读更多

从数组中删除最少的元素以使 GCD 更大 (C++)

Arnab Chakraborty
更新于 2020年7月23日 07:09:21

190 次浏览

概念对于给定的 N 个数字,目标是确定要删除的最小数字数量,以便剩余数字的 GCD 大于 N 个数字的初始 GCD。如果不可能增加 GCD,则打印“NO”。输入 b[] = {1, 2, 4}输出 1删除第一个元素后,新的 GCD 为 2,大于初始 GCD,即 1。输入 b[] = {6, 9, 15, 30}输出 3初始 gcd 为 3,删除 6 和 9 后获得 gcd 为 15,大于 3。我们还可以删除 9 和 15 以获得 gcd 为 ... 阅读更多

在 C++ 中使欧拉回路所需的最小边数

Arnab Chakraborty
更新于 2020年7月23日 06:48:55

196 次浏览

概念对于给定的 b 个节点和 a 条边的无向图,任务是确定在给定图中构建欧拉回路所需的最小边数。输入 b = 3, a = 2 Edges[] = {{1, 2}, {2, 3}}输出 1通过连接 1 到 3,我们可以构建欧拉回路。方法为了使欧拉回路存在于图中,我们需要每个节点都具有偶数度,因为这样就存在一条可以用来在进入节点后离开节点的边。现在,可能有两种情况:- 图中存在一个连通分量对于 ... 阅读更多

在国际象棋棋盘上可以进行的最小切割次数,使其不会分成两部分 (C++)

Arnab Chakraborty
更新于 2020年7月23日 06:45:17

153 次浏览

概念给定一个 A x B 的国际象棋棋盘,任务是计算我们可以在国际象棋棋盘中进行的最大切割次数,以便国际象棋棋盘不会分成两部分。示例以下给出示例:输入 A = 2, B = 4输出最大切割数 = 3输入 A = 2, B = 2输出最大切割数 = 1方法对于 A = 2, B = 2,我们只能进行 1 次切割(用红色标记)。如果我们再进行 1 次切割,那么棋盘将分成 2 块对于 A = 2, B = 4,我们可以进行 3 次切割(用红色标记)。 ... 阅读更多

广告
© . All rights reserved.