在 BST 中查找所有小于 x 的数字

2023-12-07

我该怎么做?我不确定什么时候才能停止 bst 搜索。


如果树的每个节点都有一个字段numLeft它告诉你它的左子树中有多少个节点(也计算它自己),然后你可以这样做O(log N)

继续添加即可numLeft对于每个值小于的节点的全局结果变量x:

countLessThan(int x, node T)
    if T = null
        return
    if T.value >= x
        countLessThan(x, T.left) // T.left contains only numbers < T.value and T.right only numbers > T.value
    else
        globalResult += T.numLeft
        countLessThan(x, T.right)

这只会计算数字。如果你想打印它们,你需要编写一个深度优先遍历来打印作为参数给出的子树。网上可以找到很多,我就不贴了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 BST 中查找所有小于 x 的数字 的相关文章

  • 如何找到最大。和分钟。在数组中使用最小比较?

    这是一道面试题 给定一个整数数组 找出其中的最大值 和分钟 使用最小比较 显然 我可以循环数组两次并使用 2n在最坏的情况下进行比较 但我想做得更好 1 Pick 2 elements a b compare them say a gt b
  • 图算法:邻接图的可达性

    我有一个依赖图 我将其表示为Map
  • 检测 JSON 数组中没有重复项的最快正确方法是什么?

    我需要检查数组中的所有项目是否都是唯一的serde json Value 由于该类型没有实现Hash我想出了以下解决方案 use serde json json Value use std collections HashSet fn is
  • 大小为 k 的非连续子序列的最大值的最小值

    在开始之前 我希望这个问题不是重复的 我发现了几个类似的问题 但它们似乎都没有描述完全相同的问题 但如果它是重复的 我会很高兴看到一个解决方案 即使它与我的算法不同 我一直在尝试回答这个问题 https stackoverflow com
  • 最小硬币找零问题——回溯

    我正在尝试用最少数量的硬币解决硬币找零问题 采用回溯法 我实际上已经完成了它 但我想添加一些选项 按其单位打印硬币数量 而不仅仅是总数 这是我下面的Python代码 def minimum coins coin list change mi
  • 查找 int 中的第 n 个 SET 位

    我想要找到的位置不仅仅是最低设置位n最低的设置但是 我是NOT谈论价值n第 位位置 例如 假设我有 0000 1101 1000 0100 1100 1000 1010 0000 我想找到设置的第四位 然后我希望它返回 0000 0000
  • 找到三角测量时覆盖另一个点的最近 3 个点的算法

    想象一张画布 周围随机分布着一堆点 现在选择其中一点 您如何找到距离它最近的 3 个点 这样如果您画一个连接这些点的三角形 它将覆盖所选点 澄清 我所说的 最近 是指到该点的最小距离总和 这主要是出于好奇 我认为 如果一个点未知 但周围的点
  • 另一个生命游戏问题(无限网格)?

    我一直在玩 Conway 的生命游戏 最近发现了一些令人惊讶的快速实现 例如 Hashlife 和 Golly 在这里下载Golly http golly sourceforge net http golly sourceforge net
  • 用于将分层平面数据(带 ParentID)转换为带缩进级别的排序平面列表的算法

    我有以下结构 MyClass guid ID guid ParentID string Name 我想创建一个数组 其中包含按层次结构中应显示的顺序排列的元素 例如 根据它们的 左 值 以及将 guid 映射到缩进级别的散列 例如 ID N
  • D3.js 对力导向图使用什么算法?

    我有兴趣确切地知道 D3 使用什么算法来实现库中的力导向图功能 读过科布罗夫的总结 http www cs brown edu rt gdhandbook chapters force directed pdf力导向图的历史让我有点困惑 不
  • 将 0 更改为 1 或反之亦然的最优雅的方式

    做接下来的事情最优雅的方式是什么 int i oneOrZero if i 0 i 1 else i 0 你可以假设i只能有 1 或 0 值 i 1 XOR https en wikipedia org wiki Exclusive or值
  • 按字母/字典顺序排列的两个字符串的平均值

    假设您采用字符串 a 和 z 并按字母顺序列出它们之间的所有字符串 a b c x y z 取这个列表的中点 你就会找到 m 所以这有点像取这两个字符串的平均值 您可以将其扩展到具有多个字符的字符串 例如 aa 和 zz 之间的中点将位于列
  • 四舍五入到最接近的 2 的幂

    是否有一个单行表达式 可能是布尔值 来获取最接近的2 n给定整数的数字 示例 5 6 7 必须是 8 四舍五入到下一个更高的二的幂 参见一些小技巧 http graphics stanford edu 7Eseander bithacks
  • ASM 中从小端到大端的快速转换

    我在 C 中有一个 uint 类型数组 在检查程序是否在小端机器上运行后 我想将数据转换为大端类型 因为数据量可能会变得非常大 但总是均匀的 所以我想考虑将两个 uint 类型作为 ulong 类型 以获得更好的性能并在 ASM 中对其进行
  • 什么是日历队列?

    我正在致力于构建一个离散事件模拟器 维基百科提到有几种通用优先级队列非常适合在 DES 中使用 具体来说 它提到日历队列是一个很好的结构 我找到了一份 pdf 1988 年的 其中提到了日历队列 但在大多数情况下我找不到关于它们的任何其他内
  • 运动结构,根据 2D 图像点对应关系重建 3D 点云

    Use case 物体绕其中心以不同的速度旋转 固定摄像机正在观察物体 给定 2D 图像点对应关系重建 3D 点云 当物体旋转时 相机可以看到它的不同部分 从而检测到不同的点和对应关系 Scene A N 张图片b N 1 图像对C N 1
  • 快速计算幂(例如 2^11)[重复]

    这个问题在这里已经有答案了 可能的重复 实现基于整数的幂函数 pow int int 的最有效方法 https stackoverflow com questions 101439 the most efficient way to imp
  • 根据 cron 规范计算下一个计划时间

    在给定当前时间和 cron 规范的情况下 计算事件下一次运行时间的有效方法是什么 我正在寻找 每分钟循环检查是否符合规范 以外的东西 规格示例可能是 每月1日 15日15 01 每小时整点的 10 20 30 40 50 分钟 Python
  • Welzl 算法的迭代版本

    我正在使用 Welzl 算法来查找点云的最小外接圆 2d 或最小外接球体 3d 不幸的是 该算法具有非常高的递归深度 即输入点数 这个算法有迭代版本吗 我找不到任何并且不知道如何将递归更改为循环 我发现了一些迭代的最小包围圆 球算法 但它们
  • 拉伸数组

    我有一个形成曲线的样本向量 假设其中有 1000 个点 如果我想将其拉伸到填充 1500 个点 给出不错结果的最简单算法是什么 我正在寻找一些只有几行 C C 的东西 我总是想增加向量的大小 并且新向量可以是当前向量大小的 1 1 倍到 5

随机推荐

  • 比较目标 C 中的时间和日期

    例如 如何在目标 C 中进行比较 以查看某个时间和日期期间是否与 plist 中已有的另一个时间和日期期间重叠 这最常用于预订 预订应用程序 以查看该特定时间段是否已被占用等 尝试这个来比较 NSDateFormatter dateForm
  • 在“unload”方法中关闭连接

    我继承了一个 Web 框架 以前的开发人员在页面生命周期的 init unload 方法中打开和关闭了他的数据库连接 本质上构造函数是这样的 简化以演示要点 public class BasePage protected DBConnect
  • C++货币输出

    我现在正在学习 C 课程 并已完成期末作业 然而 有一件事困扰着我 虽然我有正确的输出来测试特定的输出 basepay应该133 20它显示为133 2 有没有办法让它显示额外的 0 而不是将其保留 有人知道这是否可能以及如何做到吗 先感谢
  • ArrayUtil 在 Java 中导致意外错误

    每当我编写包含 ArrayUtil 的代码时 它都会导致意外错误 int values ArrayUtil randomIntArray 30 300 我使用 Eclipse 编写代码 并且 ArrayUtil 下始终有红色下划线 我究竟做
  • 下载文件夹的 Apache 热链接保护

    我试图避免从其他网站直接链接到我网站的可下载内容 我的 exe zip 和 msi 文件位于 files 目录下 我怎样才能避免直接链接到它们 提前致谢 将以下内容添加到 files 目录中的 htaccess 文件中 RewriteEng
  • Android Studio 上未找到名称为“default”的配置错误

    我正在尝试测试参考而不复制库项目 所以我创建了两个项目 一个是ProjectA其中之一是LibraryA 两个项目均位于 工作室项目文件夹 我正在尝试参考LibraryA from ProjectA我在标题中得到了错误 Here is 设置
  • awk 无法忽略“++”

    check a1 awk F v name check tolower 2 tolower name file txt 似乎 awk 在处理 字符串时存在一些问题 它无法检索文件中的值 然而 我已经尝试过改变check 44b 看起来工作得
  • 异常:“数据库行 [UnmarshalRecordImpl()] 中缺少类指示符字段。”使用 EclipseLink JAXB (MOXy) 解组 XML 时

    是否有任何方法可以使用 XmlDecriminatorNode XmlDecrimintatorValue 注释对下一个 XML 进行解组 或者有任何解决方法
  • 表示换行的首选位置

    假设我想在 HTML 表格单元格中显示以下文本 Honey Nut Cheerios Wheat Chex Grape Nuts Rice Krispies Some random cereal with a very long name
  • Python ValueError:chr() arg 不在范围内(256)

    所以我正在学习python并重做一些旧项目 该项目涉及从命令行获取字典和要翻译的消息 并翻译该消息 例如 btw 你好 你好 将被翻译为 顺便说一句 你好 你好吗 我们使用教授提供的扫描仪来读取标记和字符串 如果有需要我也可以在这里发布 这
  • Android 上无法从 xmpp 服务器获取公共房间列表?

    大家好 我是 Android 新手 目前陷入困境 我必须返回在 xmpp 服务器上创建的公共房间列表 我遇到的问题是下面的代码对于java工作正常 但在android的情况下存在空指针异常 任何有关此问题的帮助将不胜感激 我正在使用 ope
  • BigQuery 中的游标

    BigQuery 脚本中有没有一种方法可以像 MySql 脚本中那样声明游标 我必须安排一个脚本定期运行 有一个逻辑 步骤1 提取所有企业名称 多行输出 步骤 2 对于每个企业 转到企业的表并运行一些更新查询 MySql 有游标 这有助于在
  • 我可以在 Flexbox 中拉取项目吗?

    我需要创建以下结构 item item item item item 里面有5件物品 它们都垂直对齐到中间 第 3 个元素被拉到左边 最后 2 个元素被拉到右边 我知道我可以使用浮动 但它有几个缺点 包括麻烦的垂直对齐 我决定使用flexb
  • php 5.1.6 json_encode 和 codeigniter

    我正在构建一个 codeigniter 应用程序 它在很多地方使用 json encode 提供 ajax 数据 今天我了解到服务器有 php 5 1 6 它不支持此方法 或 json decode 我能做什么 请帮忙 有一个 json e
  • Char 数组初始化时出错

    它可能很简单 但我对 c 很陌生在 char 数组中 我们可以让编译器计算字符串中的字符数 例如 char myarray stringvar 没关系 但是如果我按如下方式更改代码 编译器会给出错误 string myvar stringv
  • 为什么模拟器不能在android中发送电子邮件

    我正在寻找从我的 Android 应用程序发送电子邮件的代码 我用谷歌搜索并读到给出的代码不会在模拟器上运行 我必须将代码放在实际设备上才能发送电子邮件 为什么会这样呢 先感谢您 这可能会有所帮助Android 电子邮件意图 如果您使用模拟
  • Polly 在重试时更改查询字符串

    我正在使用 NET 5 并希望使用 Polly 来更改重试时请求的查询字符串 背景 我的 IP 地址允许每分钟发出固定的请求配额 如果超出限制 我会收到特定的 4xx 状态代码 在本例中 我想添加一个查询字符串参数 key xxx来处理峰值
  • JTextArea位置,setBounds不起作用?

    我想要一个JTextArea在某个位置上 我尝试了几件事 比如使用不同的LayoutManagers no LayoutManager无论如何 setLayout null 等等 无论我做什么 似乎setBounds setLocation
  • magento 网站迁移后 CSS 不加载

    我按照描述的步骤将我的 magento 网站迁移到不同的服务器here 一切都很顺利 除了当我加载页面时 CSS 不会加载 而且我只是以纯文本形式获取页面 我使用 firebug 并注意到系统用于获取 CSS 文件的路径在 FTP 服务器中
  • 在 BST 中查找所有小于 x 的数字

    我该怎么做 我不确定什么时候才能停止 bst 搜索 如果树的每个节点都有一个字段numLeft它告诉你它的左子树中有多少个节点 也计算它自己 然后你可以这样做O log N 继续添加即可numLeft对于每个值小于的节点的全局结果变量x c