资讯专栏INFORMATION COLUMN

【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?

elva / 2719人阅读

摘要:如何使用异或运算找到数组中缺失的数今天给大家分享一篇关于使用异或运算找到数组中缺失的数的问题。第二种解法通过对所有整数的进行,然后将得到的结果对剩余数组中所有项的进行异或。

如何使用异或(XOR)运算找到数组中缺失的数?

今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题。

在一次Javascript面试中,有这么一个问题:

假设有一个由0到99(包含99)的整数组成的长度为100的数组。从数组中随机移除一个元素,得到了一个长度为99的数组,那么请问如何找到所取出的数字是几?(假设数组未排序)。

大多数面试者都是按照如下方法解答的:

首先对数组进行排序,然后遍历一遍数组,检查数组中相邻两项的的差,如果差大于1,则找到缺失的数字。

这是一种有效的算法。但是由于涉及排序,会消耗额外的计算成本。所以问题在于如何在只遍历一遍数组的情况下找到缺失的数。

第一种解法

计算剩余99个整数的和,以及0-99所有整数的总和,就可以用0-99之间所有整数的总和减去数组中剩余数的和来得到缺少的数。

第二种解法

通过对所有整数[0..99]的进行XOR,然后将得到的结果对剩余数组中所有项的进行异或。

更多详细内容可以查看原文。今天的文章就分享到这啦。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100009.html

相关文章

  • 为什么异或问题线性不可分割

    摘要:为什么感知机是处理线性问题的未完待续下次补充为什么异或问题是非线性问题给出一个知乎上的解释,我觉得可以跳转链接知乎平面上个点,为一类,为另一类。线性可分就是指通过平面上一条直线可以将两类分开到直线的两侧。 为什么异或问题是线性不可分割的? 看教材的时候多说,感知机(单层神经网络)不能解决异或问题,那为什么呢??? 因为 感知机是处理线性问题的 异或问题是非线性问题 什么是线性可分? N...

    VPointer 评论0 收藏0
  • 数值变量交换常用方法

    摘要:临时变量法临时变量法交换前交换后临时变量法交换前交换后加减法加减法交换前交换后加减法交换前交换后异或法异或法交换前交换后异或法交换前交换后 临时变量法 echo ---临时变量法--- ; $num1 = 3; $num2 = 6; echo 交换前: , $num1 = , $num1, , $num2 = , $num2, ; $tmp = $num1; $num1 = $...

    ybak 评论0 收藏0
  • 如何打造一个令人愉悦前端开发环境(一)

    摘要:我觉得这方面的原因是当时对和的依赖,导致大家对的兴趣不弄,错过了最佳时机,这个其实跟百度自己的的技术栈有很大关系。这个阮一峰对于前端构建的变化吐槽过,说新的构建工具就是的构建工具。 文章来源 最近几年,前端发展越来越迅速,各种萌新加入了前端这个大家庭,大有赶IOS、超Android的趋势呀!同时,萌新们提出了各种前端工作问题,除了最基础的html、css、js三板斧之外,最让人头疼的应...

    KavenFan 评论0 收藏0
  • 如何打造一个令人愉悦前端开发环境(一)

    摘要:我觉得这方面的原因是当时对和的依赖,导致大家对的兴趣不弄,错过了最佳时机,这个其实跟百度自己的的技术栈有很大关系。这个阮一峰对于前端构建的变化吐槽过,说新的构建工具就是的构建工具。 文章来源 最近几年,前端发展越来越迅速,各种萌新加入了前端这个大家庭,大有赶IOS、超Android的趋势呀!同时,萌新们提出了各种前端工作问题,除了最基础的html、css、js三板斧之外,最让人头疼的应...

    Yangyang 评论0 收藏0

发表评论

0条评论

elva

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<