剑指offer打卡Day12:数组中重复的数字
初始化一个集合,用于记录已经遇到的数字。 遍历数组中的每个元素。 对于当前元素,检查它是否已经存在于集合中。 如果遍历完整个数组仍未找到重复的数字,返回false。 输入检查:首先检查输入的数组是否有效,避免空指针或长度不匹配的情况。 初始化集合:使用HashSet来存储已经遇到的数字,自动处理重复元素。 遍历数组:对于每个数字,检查是否存在于集合中。 返回结果:如果遍历完所有元素仍未找到重复,返回false。
发布日期:2021-04-30 21:03:38
浏览次数:105
分类:精选文章
本文共 907 字,大约阅读时间需要 3 分钟。
在一个长度为n的数组中,所有数字都在0到n-1的范围内。我们需要找出数组中第一个重复的数字。同时,如果数组中没有重复的数字,函数应该返回false,否则返回true,并将重复的数字放到duplication[0]中。
解法思路
为了高效地解决这个问题,我们可以使用集合数据结构来跟踪已经出现的数字。具体步骤如下:
- 如果存在,则说明这是第一个重复的数字,记录下来并返回true。
- 如果不存在,将其添加到集合中继续检查下一个元素。
这种方法的时间复杂度是O(n),空间复杂度是O(n)。
代码实现
public boolean duplicate(int[] numbers, int length, int[] duplication) { if (length <= 0 || numbers == null || numbers.length != length) { return false; } HashSet set = new HashSet<>(); for (int num : numbers) { if (set.contains(num)) { duplication[0] = num; return true; } set.add(num); } return false;} 代码解释
- 如果存在,记录重复数字并返回true。
- 如果不存在,将其添加到集合中。
这种方法简洁高效,能够在O(n)时间复杂度内解决问题。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2026年06月04日 21时25分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP pcntl_fork不能在web服务器中使用的变通方法
2023-02-27
php private ,public protected三者的区别
2023-02-27
php PSR规范
2023-02-27
php redis(2)
2023-02-27
PHP Redis分布式锁
2023-02-27
PHP SOAP模块的使用方法:NON-WSDL模式
2023-02-27
PHP SPL标准库-迭代器
2023-02-27
PHP Static延迟静态绑定
2023-02-27
php zookeeper实现分布式锁
2023-02-27
PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
2023-02-27
php 反射
2023-02-27
PHP 实现N阶矩阵相乘
2023-02-28
php 延迟静态绑定static关键字
2025-05-03
Redis入门
2025-05-03
PHP 截取字符串乱码的解决方案
2025-05-03
php 接口类与抽象类的实际作用
2025-05-03
PHP 插入排序 -- 折半查找
2025-05-03
PHP 支持8种基本的数据类型
2025-05-03