数组中重复的数:

题目:找出数组中重复的数,

题目描述:

在一个长度为n的数组里的所有数字都在0到n-1的范围内。

数组中某些数字是重复的,但不知道有几个数字是重复的。

也不知道每个数字重复几次。请找出数组中任意一个重复的数字。

例如,如果输入长度为7的数组{2,3,1,0,2,5,3},

那么对应的输出是重复的数字2或者3。

分析:

首先进行重新排序

然后从头进行扫描即可。

1.比较下标,如果下标index等于数组num[index]继续比较下一个

如果不等于:将index与num[index]比较:如果相等则这个数是重复的;如果不相等,

将index与num[index]交换,然后继续比较.....

如:[2,3,1,0,2,5,3]---->[1,3,2,0,2,5]----->[3,1,2,0,2,5,3]

------>[0,1,2,3,2,5]到扫到2时由于下标4与数值2不一致,再比较

2与下标为2中的数发现相等,即可以得到重复的数;

运行结果如下:

当然这个题也可以用hashmap解决:

遍历数组,采用hashmap存放每个元素,其中元素作为key存储,value为0。

当前遍历元素插入hashmap时,先检查hashmap中是否已经存在同样的key。

若存在,记录下该值,返回true;若不存在,存入map中,继续遍历,直到数组结束,返回false.、

如果要求不修改数组找出重复的数:

按照二分查找的思路,将1-n分成两半,假如将1-n分成1-m和m+1到n。如果1~m中的数字的数目超过m,那就说明有重复数字;

否则,另一半中一定有重复的数字。我们可以继续把包含重复数字的区间继续二分,直到找到一个重复的数字。

找出重复的数java_剑指offer:1.找出数组中重复的数(java版)相关推荐

  1. 剑指Offer - 面试题3. 数组中重复的数字(哈希)

    1. 题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组 ...

  2. 剑指offer 面试题03. 数组中重复的数字

    找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...

  3. 剑指offer面试题03. 数组中重复的数字(Array)

    题目描述 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中 ...

  4. 剑指Offer #01 二维数组中的查找(Java描述)

    题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...

  5. 剑指offer面试题[51]-数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  6. 【LeetCode笔记】240. 搜索二维矩阵II 剑指 Offer 04 二维数组中的查找(Java、指针)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 两道题一样的 有序 + 搜索,明摆着二分查找 但是比较懒-选取了题解里的指针做法= = 思路 & 代码 时间复杂度O(m + n) ...

  7. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  8. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  9. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  10. 剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

最新文章

  1. 2020春招即将来袭,送你110道Python面试真题
  2. nodejs获取当前url和url参数值
  3. java.lang.NoSuchMethodError: org.junit.runner.Description.getClassName()Ljava/lang/String;
  4. python自动化报表定时跑_POINTer分享:Python如何做报表自动化
  5. 2018 ICPC Asia Jakarta Regional Contest J. Future Generation 状压dp
  6. 前端学习(1045):todolist本地存储加载到页面
  7. C++:40---继承中类成员的变化关系
  8. 数据结构基础入门知识
  9. vrep中设置joint的位置、速度需要根据关节的模式来设置。
  10. 关于高效找工作的几条建议
  11. 用Python实现一个软件自动升级系统
  12. php计算时间差js,JS计算日期时间差
  13. 汇编语言学习:如何理解“物理地址=段地址X16+偏移地址”
  14. tomcat目录webapps介绍
  15. Chromium下载各类版本(pyppeteer爬虫下载地址)
  16. 乡愁 - 怀念老者余光中
  17. CSR867X sink例程的VM工程属性编译选项简析
  18. //编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、 //数学课(Math)和平均值(avg)
  19. 图像锐化(增强)和边缘检测
  20. 解读青岛城市规划建设:5年内再添40座山头公园

热门文章

  1. XML解析文件出错解决方法
  2. 为 VUE 项目添加 PWA 解决发布后刷新报错问题
  3. HTMLCollection元素的For循环
  4. 未捕获ReferenceError:未定义$?
  5. 什么是NullReferenceException,如何解决?
  6. Objective-C中的常量
  7. ASP.NET 页面之间传递值的几种方式
  8. mondb 常用命令学习记录
  9. Java开发利器--Lombok,IDEA端安装教程
  10. spring事务介绍