关于数组中缺少元素的问题

2023-12-14

我在麻省理工大学的《算法介绍第二版》一书中遇到以下问题

问题如下

数组 A[1 。 。 n] 包含 0 到 n 之间除 1 之外的所有整数。这很容易 使用辅助数组 B[0 来在 O(n) 时间内确定丢失的整数。 。 ] 记录 A 中出现了哪些数字。但是,在这个问题中,我们无法访问 通过一次操作即可得到 A 中的整个整数。 A的元素表示为 在二进制中,我们可以用来访问它们的唯一操作是“获取第 j 位 A[i]”,这需要常数时间。

证明如果我们只使用这个操作,我们仍然可以在 O(n) 时间内确定丢失的整数

请帮忙


拨打您丢失的号码M.

您可以将数组分成两部分,具体取决于是否最低有效位A[i]是 1 或 0。两部分中较小的一个(称为P_1) 至多是(n-1)/2元素的大小,它会告诉你是否M的最低有效位是 1 或 0。

现在考虑元素的第二位P_1。同样,这部分可以分为两部分,两部分中较小的一个(P_2) 告诉您该位应该是 1 还是 0。

继续前进(P_3, P_4,...)直到你弄清楚所有的位是什么。

你可以证明这是O(n)因为你本质上是在看n + n/2 + n/4 + ...数组中不同的单独位,并且这个总和小于2n.

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

关于数组中缺少元素的问题 的相关文章

  • java中的Anagram算法

    我想做字谜算法但是 这段代码不起作用 我的错在哪里 例如 des 和 sed 是字谜 但输出不是字谜 同时我必须使用字符串方法 不是数组 public static boolean isAnagram String s1 String s2
  • 在大文件中查找重复项

    我有一个非常大的文件 大约有 1500 万个条目 文件中的每一行都包含一个字符串 称为键 我需要使用 java 查找文件中的重复条目 我尝试使用哈希图并检测重复的条目 显然 这种方法向我抛出了 java lang OutOfMemoryEr
  • 加权图的 BFS 算法 - 寻找最短距离

    我看过很多帖子 即 post1 https stackoverflow com questions 30409493 using bfs for weighted graphs post2 https cs stackexchange co
  • 打印从 1 到 100 的质数

    此 C 代码打印出以下素数 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 但我不认为这就是我的书所希望的写作方式 它提到了一些关于数字的平方根的内容
  • 仅使用两个变量交换两个数字

    它如何执行交换 a a b b a b a b a 我不同意把它换成书 书中的选项包括 a和b的值的补集 否定和b 希望这些选项也不能满足它 正确的算法应该是 a a b b a b a a b
  • 如何在大空间尺度上加速A*算法?

    From http ccl northwestern edu netlogo models community Astardemo http ccl northwestern edu netlogo models community Ast
  • 大小为 n 的数组,其中一个元素 n/2 次

    给定一个由 n 个整数组成的数组 其中一个元素出现超过 n 2 次 我们需要在线性时间和恒定的额外空间中找到该元素 YAAQ 又一个数组问题 我有一种偷偷的怀疑 这类似于 在 C 中 We don t need an array publi
  • RNG 技术的可移植性和可重复性

    我可以使用两种方法之一来创建一个伪随机数序列 该序列具有两个重要特征 1 它可以在不同的机器上重现 2 该序列永远不会重复范围内的数字 直到所有数字都被发出 我的问题是 这两种方法在可移植性 操作系统 Python 版本等 方面是否存在潜在
  • 为什么 n 按位和 -n 总是返回最右边的位(最后一位)

    这是Python代码片段 1 1 1 2 2 2 3 3 1 看来任何n n总是返回最右边 最后 位 我真的不知道为什么 有人可以帮助我理解这一点吗 这是由于负数以二进制表示的方式 称为二进制补码表示 创建某个数字 n 的补码 换句话说 创
  • std::__gcd 和 std::gcd 有什么区别?

    Many https www geeksforgeeks org stdgcd c inbuilt function finding gcd websites https codeforces com submissions Madiyar
  • 我该如何解决? KnapSack - 值完全相同,但每个对象都有三个权重

    我在解决我的练习时遇到问题 我读到了动态规划和算法 我认为我的练习是 特定背包问题 我用暴力法解决了它 但我无法用动态规划解决它 我有一艘重300吨的船 背包 有些晶体本身含有 3 种物质 X Y Z 每种物质都有重量 并且所有晶体都具有相
  • 沿着长数据序列在固定大小的移动窗口中查找中值

    给定一个数据序列 可能有重复项 一个固定大小的移动 窗口 从数据开始处每次迭代时移动窗口 序列 使得 1 从窗口中删除最旧的数据元素并添加新数据 元素被推入窗口 2 求每次移动时窗口内数据的中位数 以下帖子没有帮助 有效地找到随机序列的中值
  • 竞争性编码 - 以最低成本清除所有级别:未通过所有测试用例

    当我遇到这个问题时 我正在一个竞争性编码网站上解决问题 问题指出 游戏中有 N 个关卡和 M 种可用武器 等级编号从 0 到 N 1 武器编号从 0 到 M 1 您可以按任意顺序清除这些级别 在每个关卡中 需要这些 M 武器的某些子集才能通
  • 二分查找问题? [复制]

    这个问题在这里已经有答案了 可能的重复 实施二分查找有哪些陷阱 https stackoverflow com questions 504335 what are the pitfalls in implementing binary se
  • 给定一个零索引数组 & 该数组的平衡索引[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给出一个由 N 个整数组成的零索引数组 A 该数组的平衡索引是任何整数 P 满足 0 P 例如 考虑以下由 N 8 个元素组成的数组
  • 将所有奇数位置的元素移动到左半部分,将偶数位置的元素移动到右半部分

    给定一个包含正整数和负整数的数组 将所有奇数索引元素移动到左侧 将偶数索引元素移动到右侧 问题的难点是在维持秩序的同时就地做 e g 7 5 6 3 8 4 2 1 输出应该是 5 3 4 1 7 6 8 2 如果顺序不重要 我们可以使用快
  • 查找数组中的组合

    我在java中有一个像这样的二维数组 transmission communication tv television approach memorycode methodact 我需要获得所有组合 例如 transmission appr
  • 快速查找具有最大总不同元素的列表列表的子集

    给定元组列表的列表 我想找到列表的子集 该子集最大化不同整数值的数量 而不重复任何整数 该列表看起来像这样 x 1 2 3 8 9 10 15 16 2 3 10 11 9 10 11 17 18 19 20 21 22 4 5 11 12
  • 归并排序究竟进行了多少次比较?

    我读到 在实践中 快速排序比合并排序快得多 其原因是隐藏常量 那么 随机快速排序复杂度的解是2nlnn 1 39nlogn 这意味着快速排序中的常数是1 39 但是合并排序呢 归并排序中的常数是什么 让我们看看能否解决这个问题 在合并排序中
  • 算法挑战:从图像生成配色方案

    背景 因此 我正在开发一个网络应用程序的新版本 而且 我们发现我们的用户非常懒惰 实在是太懒了 事实上 我们为他们做的工作越多 他们就越喜欢这项服务 现有应用程序的一部分要求用户选择要使用的配色方案 但是 我们有一张图片 用户网站的截图 为

随机推荐

  • 如何将复选框添加到 uialertview 中?

    我是 iPhone 开发新手 我想在警报视图中添加一个复选框 过去两天我正在对此警报视图进行测试 但没有得到任何有效的演示项目 我正是想要这个警报框 谁能帮我 尝试使用此代码添加复选框alertview Swift let nameFiel
  • Pandas 版本之间的 MultiIndex/Reshaping 差异

    我有一个使用以下代码的 DataFrame import pandas as pd import numpy as np index pd DatetimeIndex 2017 05 04 2017 05 05 2017 05 08 201
  • Java 套接字数组

    我正在创建服务器和客户端 java 应用程序 我想创建一个数组来存储我的套接字 我正在使用 eclipse 当我输入这一行时 Socket sockets new Socket 3 Eclipse 给我一个错误 说 资源类型 Socket
  • 从主干集合中设置 Fuelux 数据网格源

    我正在尝试从我的主干集合中设置 Fuelux 数据网格源 示例来源在这里https github com ExactTarget fuelux tree master sample 我累了就像 function root factory i
  • 如何处理 pandas 中的插补和热一编码?

    我正在尝试对我的数据集应用插补和热一种编码 我知道在应用插补时 数据的维度可能会发生变化 因此我手动处理了它 该模型运行良好 但后来我决定应用热一种编码 现在 该程序无法编译 我收到尺寸不匹配错误 test X pd get dummies
  • 如何访问 subclipse 在运行时使用的 SVNClientAdapter?

    我正在使用 Subclipse API 我想实现 ISVNNotifyListener 以便我可以了解运行时发生的 subclipse 事件 我相信我需要将我的通知侦听器实例添加 订阅 到客户端适配器将通知的侦听器集 但我不知道如何访问 S
  • 我无法初始化 Google Play 游戏服务

    项目只有这段代码 我只是遵循这个描述 访问https developers google com games services android init 创建项目并添加库 google play services lib 和 BaseGam
  • 使用 Xamarin.Android 将文件上传到谷歌驱动器文件夹

    我想使用 Xamarin Andriod 在 google 驱动器 不是默认位置 的特定文件夹内创建文件 我正在使用下面的代码 MetadataChangeSet changeSetfile new MetadataChangeSet Bu
  • 在 Mac OS X 雪豹上运行 mono 2.10.2 mkbundle 时出现问题

    这一页有关于捆绑包的信息mkbundle 但是当我尝试在 Mac 上使用它时 收到此错误消息 delegate gt mkbundle delegate exe o delegate OS is Darwin Sources 1 Auto
  • Java 小程序下载文件

    我正在尝试构建一个 java 小程序 它将文件下载到客户端计算机 作为一个java应用程序 这段代码工作得很好 但是当我尝试作为一个小程序时 它什么也没做 我已签署 jar 文件 但没有收到任何安全错误消息 代码是 import java
  • 如何判断特定字体是否具有 >64k 的特定字形

    当代码点适合 64 位值时 确定特定 Unicode 字体是否包含该代码点的字形相对容易 if CTFontGetGlyphsForCharacters ctFont chars glyphs 1 It exists 但 CTFontGet
  • android 数据绑定无法正常工作

    我想帮助解决问题 首先 按照我的代码的详细信息 build gradle Project android buildscript repositories jcenter mavenCentral maven url home melti
  • EF 4 Code First - 组合视图和表

    我研究这个问题好几天了 似乎找不到一个让我感觉良好的选择 但是 这里有一个非常相似的问题的链接 将计算字段添加到模型 最后 我也有同样的问题 但希望有更好的解决方案 考虑以下数据库表 CREATE TABLE Contact Contact
  • 函数将十六进制字符串转换为 BitArray C#

    我创建了以下函数 它将按要求执行 将十六进制字符串转换为 BitArray 我不确定该函数的效率 但我现在的主要问题是转换为Int64函数是特定字节序 当将其移植到替代芯片组时 我们将得到不同的结果 或例外 那么有人能想到另一种方法来进行这
  • 如何使用 Wi-Fi 获取距离

    我想使用 wi fi 查找距离并在 iPhone 的地图上绘制标记 那么我能得到什么想法或代码吗 第一次阅读您的问题时 我假设您指的是到接入点的距离 在写了一堆关于这个的内容之后 我意识到你可能有别的意思 如果这就是您的意思 请继续阅读 鉴
  • Facebook如何重写浏览器地址栏中页面的源URL?

    Go to http www facebook com facebook v wall 然后单击信息选项卡 内容将被加载 地址栏现在变成http www facebook com facebook v info但网页没有重新加载 起初我以为
  • 在 Nuxt 中使用最新的 SASS 和 @use

    我想在我的项目中使用 sass 我安装了 node sass 和 sass loader 我可以使用导入 变量和其他 sass 的未来 但我不能使用 use 来使用 mixin 或 function dependencies babel c
  • 如何在python中使用networkx绘制有向图?

    我有一些来自脚本的节点 我想将它们映射到图表上 在下面 我想使用箭头从 A 到 D 并且可能也将边缘着色 红色或其他颜色 这基本上就像所有其他节点都存在时从 A 到 D 的路径一样 您可以将每个节点想象为城市 从 A 到 D 需要方向 带有
  • Laravel - 如何更新整个集合

    我正在尝试用 laravel 制作一个通知系统 我的想法是获取数据并立即更新 is delivered 标志 这是代码 Model public function scopeGetForView query query gt orderBy
  • 关于数组中缺少元素的问题

    我在麻省理工大学的 算法介绍第二版 一书中遇到以下问题 问题如下 数组 A 1 n 包含 0 到 n 之间除 1 之外的所有整数 这很容易 使用辅助数组 B 0 来在 O n 时间内确定丢失的整数 记录 A 中出现了哪些数字 但是 在这个问