数组中重复的数字

题目描述:

找出数组中重复的数字。

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

示例 1:

输入:

[2, 3, 1, 0, 2, 5, 3]

输出:2 或 3

解法:

1.交换

因为数组中的元素范围都在0-n-1之间(n为数组长度),故我们可以将数组元素通过交换放到他们应该在的地方。例如:i位置的数组元素为nums[i]

在交换过程中遇到i不等于nums[i] 但nums[i]等于nums[nums[i]]时 说明nums[i]元素重复 返回nums[i]


2.Hashset

利用Hashset不存储重复元素的原理 将数组元素依次存储hashset 遇到已经在hashset中存在的元素 即为重复元素 直接返回


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重...
    晨微雨梦宿雨飞阅读 1,144评论 0 0
  • 找出数组中重复的数字 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几...
    Longshihua阅读 3,696评论 0 3
  • 写在前面 c++的确是需要一直学习一直积累的编程语言! 1、数组初始化列表中的元素个数小于指定的数组长度时,不足的...
    wensong_kevin阅读 1,589评论 0 0
  • 面试题 3 - 1:数组中重复的数字 题意:给定一个数组nums,长度为n,其数值范围在0~n-1之间,其中可能存...
    hxy159阅读 1,166评论 0 0
  • 题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的...
    Lemon_Kang阅读 1,000评论 0 0

友情链接更多精彩内容