在 O(n) 和常数空间中查找重复[重复]

2023-11-26

可能的重复:
简单的面试问题变得更难:给定数字 1..100,找到缺失的数字
在线性时间和常量空间中查找数组中缺失和重复的元素

我在一个论坛上看到一个有趣的问题。

你有从 1 到 100 的 100 个元素,但由于错误,其中一个数字通过重复自身而与另一个数字重叠。 例如。 1,99,3,...,99,100 数组没有排序,如何找到重复的数字?

我知道哈希可以做到 O(n) 时间和 O(n) 空间,我需要 O(1) 空间。


计算两个和:总和和平方和。

在你的例子中:

sum = 1+99+3...+100

sq_sum = 1^2+99^2+3^2+...+100^2

假设 y 替换了序列中的 x。

sum = n(n+1)/2 -y+x.
sq_sum = n(n+1)(2n+1)/6 -x^2 +y^2

现在,求解 x 和 y。

恒定空间和 O(n) 时间。

如何求解 x 和 y

由方程可知:

x = sum - n(n+1)/2 +y

将其代入第二个方程:

sq_sum = n(n+1)(2n+1)/6 -(sum - n(n+1)/2 +y)^2 +y^2

请注意,y^2 取消,留下一个只有一个未知数的线性方程:y。解决这个问题!

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

在 O(n) 和常数空间中查找重复[重复] 的相关文章

  • 文件比较的逻辑

    我试图编写一个用于文件比较的程序 例如 file1 1 2 3 4 5 file2 1 2 3 4 5 如果我逐行执行 我会得到 1 1 2 2 3 4 3 5 4 5 但是 事实是这些文件之间的唯一区别是 我想要得到这样的东西 1 1 2
  • 大小为 k 的非连续子序列的最大值的最小值

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

    我想要找到的位置不仅仅是最低设置位n最低的设置但是 我是NOT谈论价值n第 位位置 例如 假设我有 0000 1101 1000 0100 1100 1000 1010 0000 我想找到设置的第四位 然后我希望它返回 0000 0000
  • 链表分区函数及反转结果

    我编写了这个 F 函数来将列表分区到某个点并且不再进一步 很像之间的交叉takeWhile and partition let partitionWhile c l let rec aux accl accr match accr with
  • 另一个生命游戏问题(无限网格)?

    我一直在玩 Conway 的生命游戏 最近发现了一些令人惊讶的快速实现 例如 Hashlife 和 Golly 在这里下载Golly http golly sourceforge net http golly sourceforge net
  • 从 2 个平面轮廓进行表面重建 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有一类用于两个平面轮廓之间的三角测量的算法 这些算法尝试进行 良好的三角测量 来填充这些轮廓之间的空间 其中之一 基于动态规划技术 并使用成本函
  • 查找top-k元素的平均时间复杂度

    考虑在一组 N 个独立且同分布的浮点值中查找前 k 个元素的任务 通过使用优先级队列 堆 我们可以对所有 N 个元素进行一次迭代 并通过以下操作维护一个 top k 集合 如果元素 x 比堆头 更差 丢弃 x 复杂度 O 1 如果元素 x
  • 需要创建一个“选择你自己的冒险”类型的指南 - 最佳使用方法

    基本上需要询问用户一系列问题并收集信息 每个问题都可能对以后的不同问题产生影响 另一个例子是涡轮税的网络界面 在某些 上回答 是 可能会引发未来的问题 似乎这在软件中是一个相当常见的问题 所以我想我是在问是否有任何现有的解决方案 设计模式可
  • 埃拉托色尼筛法的 Java 实现可以超过 n = 2^32?

    目前我有这个质数生成器 其限制为 n Sieve public class Main public static void main String args long N 2000000000 initially assume all in
  • Tarjan 算法的非递归版本

    我有以下 Tarjan 算法的 递归 实现来查找图中的强连接组件 并且工作正常 public class StronglyConnectedComponents public static List
  • ASM 中从小端到大端的快速转换

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

    class Details String name String age String email String location 1 如果有详细信息列表 如下所示List
  • 计算排列中“反转”的数量

    设 A 为一个大小的数组N 我们称之为几个索引 i j 一个 逆 如果i lt j and A i gt A j 我需要找到一种接收大小数组的算法N 具有唯一的数字 并返回时间的倒数数O n log n 您可以使用归并排序 http en
  • 将平面表解析为树的最有效/优雅的方法是什么?

    假设您有一个存储有序树层次结构的平面表 Id Name ParentId Order 1 Node 1 0 10 2 Node 1 1 1 10 3 Node 2 0 20 4 Node 1 1 1 2 10 5 Node 2 1 3 10
  • 位图中连续区域的计数是否可以比 O(r * c) 改进?

    您将获得一张由卫星拍摄的表面图像 该图像是一个位图 其中水用 标记 土地标记为 相邻组 形成一个岛屿 二 如果它们水平 垂直或对角相邻 则它们是相邻的 您的任务是打印位图中岛屿的数量 输入示例 输出 5 这是我的实现 需要O r c 空间和
  • Deflate 压缩 - 数值示例

    我真的很想看看一个数字示例 手动压缩如何进行压缩 以下非常短的文本 abc 已使用 deflate 算法进行压缩 输出 eJxLTEoGAAJNASc 其二进制表示法为 01100101 01001010 01111000 01001100
  • 如何编写一个简单的版本控制系统?

    我想做一个简单的版本控制系统 但我不知道如何构建我的数据和代码 这是一个简短的例子 用户登录 User has two options when uploading a file 提交新文件 提交文件的新版本 用户应该能够看到树 版本不同
  • 如何在 Perl 中生成数组的所有排列?

    生成所有内容的最佳 优雅 简单 高效 方式是什么 n perl 中数组的排列 例如 如果我有一个数组 arr 0 1 2 我想输出所有排列 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 它可能应该是一个返回迭代器的
  • 哪种算法可以解决我的婚礼餐桌问题?

    我的婚礼有 x 位客人 有 y 张桌子 有 z 个座位 客人A可以与客人B同桌 客人C不能与客人D同桌 给定所有客人之间所有连接的数据集 是否有已知的算法可以解决此类问题 我确信这种问题有一个抽象的父问题 称为 问题 x 或其他问题 或者它
  • 如何决定权重?

    对于我的工作 我需要某种具有以下输入和输出的算法 输入 一组日期 过去的日期 输出 一组权重 每个给定日期一个权重 所有权重的总和 1 基本思想是 距离今天日期最近的日期应该获得最高的权重 第二个最接近的日期将获得第二高的权重 依此类推 有

随机推荐

  • 使用 Zend_Session::rememberMe 持久登录

    我在用着Zend Session管理我的用户会话 我希望在我的应用程序中实现 记住我 选项 以使用户登录状态持续两周左右 我注意到了Zend Session已经有一个名为的内置函数Zend Session rememberMe 但是我不确定
  • 在 App Engine 上使用 Spring AOP 会导致 StackOverflowError

    我们有一个在 App Engine 上运行并使用 Spring 框架的应用程序 最近我们添加了一些基于AOP的新功能 我们决定使用 AspectJ 风格 因此我们添加了
  • 有人可以帮我使用谷歌图表创建一个简单的垂直条形图吗?

    我需要帮助来构建动态图表 我有以下代码 但需要将其更改为垂直条形图而不是水平条形图 这里是示例 您可以将 bhs 更改为 bvs 并根据需要更改缩放比例 尝试这个
  • 如何避免多个
  • 产生双边框
  • 如何避免列表样式出现双边框线 请参阅下面的小提琴以获得清晰的图片 我想要每个盒子的宽度为 1px 但是当它们组合在一起时它们是双倍的 http jsfiddle net awaises 4SLPh 1 HTML ul li li li li
  • 在Java中提取int的数字

    因此 如果我输入一个整数 int num 1 128 我如何能够解析数字并获得 1 2 和 8 并将它们分配给不同的变量 Thanks 执行此操作的低效方法是将整数转换为字符串并迭代字符串字符 更有效的方法是这样的 int n 128 wh
  • Python 删除某些文件扩展名

    我对 Python 相当陌生 但我已经让这段代码可以工作 并且事实上 做了它想要做的事情 但是 我想知道是否有更有效的方法来编码 也许可以提高处理速度 import os glob def scandirs path for current
  • 浮点运算中什么是上溢和下溢

    我觉得我不太明白这个概念overflow and underflow 我问这个问题是为了澄清这一点 我需要从最基本的层面来理解它 让我们使用简化的浮点表示1 byte 1位符号 3位指数和4位尾数 0 000 0000 我们可以存储的最大指
  • iOS 8 Mapview 当前位置不火

    MKMapview当前用户位置未触发iOS 8 以前的iOS 7 iOS 6工作正常 self mapView delegate self self mapView showsUserLocation YES 在这一行中自动调用用户当前位置
  • 以编程方式打开“请勿打扰”

    在iOS 6中 您可以打开 关闭 请勿打扰模式 有可能通过应用程序做到这一点吗 或者至少有一种方法可以查明它是否已设置 我没有确切的答案 但我建议您研究 Apple 拥有的内部设置 URL prefs root 记录如下 http www
  • 为所有服务器端代码调用ConfigureAwait 的最佳实践

    当你有服务器端代码 即一些ApiController 并且你的函数是异步的 所以它们返回Task
  • 如何使用 TSQL 循环遍历文件夹中的所有文件?

    我们有一个 excel 文件文件夹 希望使用 TSQL 将其导入到数据库中 我们有使用导入单个文件的代码OpenRowSet 但需要找到一种方法来循环文件夹中的文件并在每个文件上运行此代码 如何使用 TSQL 来实现这一点 做了一些研究 找
  • 一次写入多个文件

    我有一个包含 196 个列表的文件 我想创建新的 196 个输出文件并将每个列表写入一个新文件中 这样我将拥有 196 个输出文件 每个文件包含 1 个输入数据列表 这是输入文件 128 129 116 118 108 104 137 14
  • 使用 pgp 加密两次有什么好处吗? [关闭]

    Closed 这个问题是无关 目前不接受答案 我是从 更安全 的角度来问的 我可以想象一个场景 其中解密场景需要两个必需的私钥 这可能会使其成为一个有吸引力的模型 我相信除了必须泄露两个不同的私钥之外 它不会增加任何额外的安全性 我认为 如
  • Phonegap 支持 WebRTC 吗?

    我想构建一个增强现实应用程序 我正在考虑使用类似 Wikitude SDK 的东西http www wikitude com developer或使用这个 javascript 库https github com mtschirs js o
  • 如何在 Ipython 笔记本中添加外部 javascript 文件

    我正在尝试将 cdn 托管的 d3 js 添加到我的 Ipython 笔记本中 如下所示 但是 当我第一次加载笔记本时 我收到 添加输出时的 JavaScript 错误 但如果我再次运行单元格 它就会正常工作 难道我做错了什么 提前致谢 您
  • python appdata 环境变量中的元音变音问题

    我找不到正确的方法来获取 python 中 appdata 路径的环境变量 问题是我的用户名包含特殊字符 德语 ae 和 ue 我为 Vista 和 Windows 7 使用 PyQt 做了一个解决方法 但它不适用于 XP 系统 有谁知道这
  • keras 将两种损失与可调权重结合起来

    所以这里是详细描述 我有一个 keras 功能模型 有两层 输出为 x1 和 x2 x1 Dense 1 activation relu prev inp1 x2 Dense 2 activation relu prev inp2 我需要使
  • 将模块写入 .bc 位码文件

    我假设从模块转储 bc 文件是一个微不足道的操作 但现在 第一次我必须真正从代码中做到这一点 为了我的一生 我 在这个过程中找不到一个缺失的步骤 static void WriteModule const Module M Bitstrea
  • 资源不在java项目的构建路径上?

    我的 Eclipse 上有一个 Maven 项目 当我执行调用层次结构时 我收到消息 该资源不在 java 项目的构建路径上 为此需要配置什么 我按照以下步骤操作 它起作用了 属性 gt 项目方面 gt 检查java gt 确定 转换为ma
  • 在 O(n) 和常数空间中查找重复[重复]

    这个问题在这里已经有答案了 可能的重复 简单的面试问题变得更难 给定数字 1 100 找到缺失的数字 在线性时间和常量空间中查找数组中缺失和重复的元素 我在一个论坛上看到一个有趣的问题 你有从 1 到 100 的 100 个元素 但由于错误