在单调递增然后递减的序列 cera 中查找一个数

2024-04-06

查找单调增加然后单调减少的序列中的最大值或最小值可以在 O(log n) 内完成。

但是,如果我想检查一个数字是否存在于这样的序列中,这也可以在 O(log n) 中完成吗?

我认为这是不可能的。考虑这个例子:1 4 5 6 7 10 8 3 2 0。

在这个例子中,如果我需要查找序列是否包含“2”,我没有任何条件将搜索空间划分为原始搜索空间的一半。在最坏的情况下,时间复杂度为 O(n),因为当我们尝试搜索 2 时,您需要检查两半。

我想知道,这个搜索是否可以在 O(log n) 时间内完成?


正如您所指出的,您可以在 O(logn) 中找到最大值(及其位置)。然后你可以在每个部分进行二分查找,这也是 O(logn) 。

在上面的示例中,您在位置 5 处找到最大值 10。 然后在子序列 [0..5] (1, 4, 5, 6, 7, 10) 中进行二分查找。 由于未找到 2,因此您继续在另一部分 (10, 8, 3, 2, 0) 中进行二分查找。

要在 O(logn) 中找到最大值:查看中心的两个元素:7

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

在单调递增然后递减的序列 cera 中查找一个数 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • CLDC 1.0 / MIDP 2.0 应用中的三角学

    如何在 CLDC 1 0 MIDP 2 0 应用程序中使用三角函数 我需要标准数学库中的 sin cos tan asin acos atan atan2 函数 Thanks 蚊子知道 http forums sun com thread
  • 在 IE11 中按计算机名称访问站点时显示“对象不支持属性或方法‘querySelector’”

    我在防火墙内的 Windows Server 2012 R2 主机上将 Angularjs 站点部署到 IIS 当我 RDP 进入服务器并从那里导航到 http localhost Foo 在 IE11 中 一切都按照人们的预期运行 我的页
  • 当我尝试运行 npx react-native run-android 时,任务:app:mergeDebugAssets 失败

    我正在使用 vscode 和物理 Android 设备在 React Native 上开发 Android 应用程序 在尝试使用 npx React Native Run Android 进行构建时 它不断显示以下错误 Task app m
  • 渠道有什么用?

    在查看一些 Go 代码时 我发现了以下内容 ch make chan int 我在在线教程中查找了 Go Channels 的工作原理 https tour golang org concurrency 2 https tour golan
  • jquery回调

    我需要能够在准备好后对函数的执行进行回调 jQuery document ready function execute function 1 only when finish do function 2 这样做的好方法是什么 加载文档后执行
  • Oracle InvalidOperationException - 尝试从表中选择时

    我有一个参数表 其中有一个参数来说明我的程序是否应该运行 我试图获取该值来检查函数 这是函数 private static bool shouldRun OracleCommand c conn CreateCommand c Comman
  • 如何在单个查询中使用不同参数执行多个联接

    我有两个表 问题 question id 和question exclusion question type question sub type question id 如果我指定 Question type 和 Question sub
  • 如何以编程方式调用视图控制器?

    我已经查看了我能找到的所有关于此问题的教程 但仍然没有答案 我需要从代码中调用另一个视图 我在用UIStoryboards 我通过控制拖动多次改变了视图UIButtons 但现在它必须来自代码 如果这是用户第一次打开应用程序 我尝试从主菜单
  • 加速 matplotlib 散点图绘制

    我正在尝试制作一个交互式程序 主要使用 matplotlib 来制作相当多的点 10k 100k 左右 的散点图 现在它可以工作 但是更改需要很长时间才能呈现 少量的点还可以 但是一旦数量增加 事情就会很快变得令人沮丧 所以 我正在研究加速
  • Activity 和 JobIntentService 生命周期

    我正在运行一个JobIntentService在后台执行任务 使用理由JobIntentService这样用户就可以在操作发生时最小化屏幕 即使 Android 操作系统破坏了该 ActivityJobIntentService仍将继续运行
  • 如何为可变特征创建描述符?

    的文档CBMutableDescriptor initWithType value 表示为类型参数传递 标识特征的 128 位 UUID 然后它继续说你应该只使用其中之一CBUUIDCharacteristicUserDescription
  • 手动编辑 *.designer.cs 文件

    我知道 designer cs文件包含由 Visual Studio 中的可视表单设计器生成的数据 不过 我还有一些额外的方法 我想将它们放入 designer cs文件 因为它们负责较低级别的表单处理 例如 我的视觉状态管理器的一部分 T
  • Python 找不到 Pyomo

    我很困惑为什么 Python 不导入 pyomo 我可以找到该目录并看到它已安装 234 pyomo user pip show pyomo Name Pyomo Version 5 1 1 Summary Pyomo Python Opt
  • Jquery AJAX post 更新数据库

    我在 HTML 表单中使用以下代码 尝试制作一种 彩票刮刮票 类型的效果 有一个网格 每个项目都有一个来自数据库的动态数字 单击正方形会调用 clickme 函数 进行 db 调用 然后更改图像 我只是在第一部分尝试更新数据库 我的 PHP
  • ControllerPlugin 类中的 ZF2 getServiceLocator

    我正在尝试在插件类中获取服务定位器 实体管理器 我怎样才能得到它 在我的控制器中我得到的是这样的 public function getEntityManager if null this gt em this gt em this gt
  • 我可以在 SQL Server 中选择 0 列吗?

    我希望这个问题比类似的问题好一点创建一个没有列的表 https stackoverflow com questions 2438321 create a table without columns 是的 我问的是一些最让人觉得毫无意义的学术
  • 表不必要的冗余

    我的物品列出如下 当然这只是一个总结 但我正在使用 详细信息 表中显示的方法来表示一种 继承 类型 可以这么说 因为 项目 和 可下载 将是相同的 除了每个都有一些相关的附加字段只对他们而言 我的问题是在这个设计模式中 这种事情在我们的项目
  • 当前不会命中断点。该文档尚未加载任何符号

    我用谷歌搜索了这个特定问题 但似乎找不到可行的解决方案 症状 在 Web 应用程序项目中的 aspx 页面的代码隐藏中添加断点后 该断点在页边空白处显示为一个空心的红色圆圈 圆圈右下角有一个用黄色三角形括起来的感叹号 将鼠标悬停在断点上时
  • 使用自定义对象的 JTable、JComboBox

    您好 如果您将 JComboBox 放入 JTable 中并将 String 数组放入 JComboBox 中 则一切正常 如果您将自己的数据类型放入 JComboBox 则在同一列中选择值会变得很复杂 这是官方示例 http docs o
  • 在单调递增然后递减的序列 cera 中查找一个数

    查找单调增加然后单调减少的序列中的最大值或最小值可以在 O log n 内完成 但是 如果我想检查一个数字是否存在于这样的序列中 这也可以在 O log n 中完成吗 我认为这是不可能的 考虑这个例子 1 4 5 6 7 10 8 3 2