千家信息网

java怎么在给定的数组里面寻找重复数

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"java怎么在给定的数组里面寻找重复数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2026年11月04日java怎么在给定的数组里面寻找重复数

本篇内容介绍了"java怎么在给定的数组里面寻找重复数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

原题

给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

示例 1:

输入: [1,3,4,2,2]
输出: 2

示例 2:

输入: [3,1,3,4,2]
输出: 3

说明:

  • 不能更改原数组(假设数组是只读的)。

  • 只能使用额外的 O(1) 的空间。

  • 时间复杂度小于 O(n2) 。

  • 数组中只有一个重复的数字,但它可能不止重复出现一次。

解题

普通思路

针对说明里的前两条,其实就分别对应了解题的两种思路:

  1. 先原地排序,再遍历寻找。

  2. 使用集合记录已经出现过的数字。

当然了,既然已经在说明里被禁止了, 那么就应该想想别的思路了。

我还想到了利用 bitMap 的思路,相当于用一个数字的二进制,各个位上是否为1来表示该数字是否出现过。但考虑到 java 里 int 的最大值是 (2^31 - 1),long 的最大值也不过是(2^63 - 1),那都是要求 n 不能大于100的。因此,这种思路也是暂时不可取的。

抽象为环形链表II

如果将数组的下标和值抽象成链表的话,出现重复数字也就意味着出现链表中有环,那么这道题就是之前做到的力扣142--环形链表II一模一样了。

我们举例说明一下,假设数组是[1, 5, 7, 3, 2, 4, 6, 7],那么将其转化成的链表就是:0 -> 1 -> 5 -> 7 -> 3 -> 2 -> 4 -> 6 -> 7 ....无限循环。

那我们就可以借助快慢指针:

  1. 快指针一次走两步,慢指针一次走一步,直到他们相遇;

  2. 快指针再次从起点出发,但此时两个指针都是一次走一步;

  3. 当他们再次相遇后,相遇点就是重复的整数。

接下来让我们看看代码:

class Solution {
public int findDuplicate(int[] nums) {
// 参考环形链表II,利用快慢指针
// 快指针一次走两步,慢指针一次走一步,当他们相遇后
// 快指针再次从起点出发,但此时两个指针都是一次走一步
// 当他们再次相遇后,相遇点就是重复的整数

int slow = nums[0];
int fast = nums[nums[0]];
while (slow != fast) {
slow = nums[slow];
fast = nums[nums[fast]];
}

fast = 0;
while (slow != fast) {
slow = nums[slow];
fast = nums[fast];
}

return fast;
}
}

提交OK,时间复杂度为:O(n),空间复杂度是:O(1)。

"java怎么在给定的数组里面寻找重复数"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

指针 数组 数字 思路 整数 再次 就是 复杂 复杂度 环形 输出 最大 接下来 两个 内容 只有 快慢 时间 更多 最大值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 互联网科技行业发展 工业互联网科技新基建 智能科技公司是互联网公司吗 喔噻互联网科技 互联网 卓越科技 人人互联网科技是培训 团飞科技与伯堂互联网服务平台 上海宁丞科技互联网 玉溪互联网科技怎么选 互联网金融科技展 云南省自由互联网科技有限公司 城市宝互联网科技有限公司 21世纪互联网科技成就 互联网相关科技技术 从那以后互联网科技有限公司 神州科技互联网有限公司 广东鹅鹅鹅互联网科技有限公司 互联网大会出现的黑科技 广州全民伙伴互联网科技有限公司 河南云网互联网络科技有限公司 互联网最新的科技有限公司 为想互联网科技 奇酷互联网科技公司 互联网科技有限公司 翻译 深圳艾果互联网通讯科技 广州百诚互联网科技有限公司官网 四川互联网展示科技馆设计 福州德业互联网科技 科技美学互联网 艺术
0