资讯专栏INFORMATION COLUMN

Java 高级算法——数组中查询重复的数字之二

tuniutech / 3222人阅读

摘要:题目二不修改数组找到重复的数字。这样,就可以得到哪一个元素是重复的。方法二我们将的数字从中间的数字分成分,前一部分为后一部分为如果的数据大于那么重复的数据就在之中,然后在将在分成分,依次类推。

题目二:不修改数组找到重复的数字。

在一个长度为n+1的数组中,所有的数字都在1-n的范围之内,所以数组中至少一个是重复的,请找到重复的数字,但不能修改输入的数组

方法一:创建一个长度为n+1的辅助数组,然后逐一的将所有的数组里的元素都复制到辅助数组中去,如果数组中的数字是m,就将数字复制到下标为m的数组位置。这样,就可以得到哪一个元素是重复的。

方法二:我们将1-n的数字从中间的数字m分成2分,前一部分为1~m,后一部分为m+1~n,如果1~m的数据大于m ,那么重复的数据就在1~m之中,然后在将1~m在分成2分,依次类推。最后就可以得到那个数字重复了。

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

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

相关文章

  • Java 高级算法——数组查询重复数字

    摘要:题目一找到数组中重复的数字。解决方法一将这个数组排序,从排序的数组中找到重复的数字是一件很容易的事情。只需要从头到尾扫描排序后的数组就可以了,排序一个长度为的数组需要的时间。 题目一:找到数组中重复的数字。 在一个长度为N的数组里的所有数字都在0——n-1的范围之内,数组中某些数字是重复的,但是不知道有几个数字是重复了,也不知道数字重复了几次,请找到数组中任意一个重复的数字。 解决方法...

    curlyCheng 评论0 收藏0
  • Java 高级算法——二维数组查询重复

    摘要:题目在一个二维数组中,每一行都按照从左到右递增都循序,每一列都是按照从上到下递增到循序,请写出一个函数,可以最快的找到和其相等到数字。解题思路代码实现运行之后 题目:在一个二维数组中,每一行都按照从左到右递增都循序,每一列都是按照从上到下递增到循序,请写出一个函数,可以最快的找到和其相等到数字。 解题思路: showImg(https://segmentfault.com/img/bV...

    icyfire 评论0 收藏0
  • JavaScript 工作原理之二-如何在 V8 引擎书写最优代码 5 条小技巧(译)

    摘要:本章将会深入谷歌引擎的内部结构。一个引擎可以用标准解释程序或者即时编译器来实现,即时编译器即以某种形式把解释为字节码。引擎的由来引擎是由谷歌开源并以语言编写。注意到没有使用中间字节码来表示,这样就不需要解释器了。 原文请查阅这里,略有删减。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第二章。 本章将会深入谷歌 V8 引擎的内部结构。我们也会...

    PingCAP 评论0 收藏0
  • 王者编程大赛之二 — 蓄水池

    摘要:相关文章王者编程大赛之一王者编程大赛之三背包王者编程大赛之四约瑟夫环王者编程大赛之五最短路径 首发于 樊浩柏科学院 自如寓打算门口用砖头围立一个蓄水池子,从上面看凹凸不平,凹的地方会有积水。那如果用数字代表每个砖头的高度,就形成一个二维数据(如示例),请问这个池子能存储多少单位的水?showImg(https://segmentfault.com/img/remote/1460000...

    Me_Kun 评论0 收藏0
  • Java 高级面试知识点汇总!

    摘要:适配器模式将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 1、常用设计模式 单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 代理模式:动态代理和静态代理,什么时候使用...

    since1986 评论0 收藏0

发表评论

0条评论

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