面试03.数组中重复的数字
2020-06-29 04:56
716 查看
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
解题思路:
因为题目要求可以找出数组中任意 一个重复的数字,所以我们只要发现有一个数字出现重复,则我们返回。
-
使用HashSet 集合 可以判断数组中有无重复的数字
-
HashSet 的 特点 : 单列 ,无序 ,不可重复
初始化set 集合,向集合中添加元素,若元素在集合中存在,则视为重复元素,返回该元素。
代码实现:
class Solution { public int findRepeatNumber(int[] nums) { HashSet<Integer> set = new HashSet<>(); int repeat = -1; //此处不能设为0 for(int num : nums){ if(!set.add(num)){ repeat = num; break; } } return repeat; } }
相关文章推荐
- C/C++面试之算法系列--去除数组中的重复数字
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 面试编程题拾遗(03) --- 删除有序数组中的重复元素
- 《剑指offer》面试题03:数组中重复的数字
- 面试OR笔试28——数组中重复的数字
- C/C++面试之算法系列--去除数组中的重复数字
- (剑指Offer)面试题03. 数组中重复的数字&面试题04. 二维数组中的查找
- 剑指offer leetcode python版 面试题03 数组中重复的数字
- leetcode--面试题03.数组中重复的数字
- 【刷题】面试题03. 数组中重复的数字
- leetcode:Remove Duplicates from Sorted Array(去掉数组重复数字,常数空间限制)【面试算法题】
- 【LeetCode6】剑指offer.面试题03. 数组中重复的数字
- c++ 刷题 leetcode面试题03. 数组中重复的数字
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 剑指Offer-03:数组中重复的数字
- 【LeetCode】03.数组中重复的数字
- leetcode:Remove Duplicates from Sorted Array II (允许重复一次,去掉数组多余数字)【面试算法题】
- 面试题03. 数组中重复的数字
- 软件开发者面试百问-----有一个数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次,你怎么找出那个重复的数字?
- 03 数组中重复的数字