找出数组中重复的数字
题目描述
给定一个长度为 n 的整数数组 nums
,数组中所有的数字都在 0∼n−1 的范围内。
数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。
请找出数组中任意一个重复的数字。
注意:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;
样例
给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。
返回 2 或 3。
返回其中任意一个重复的数都可以
题目分析
首先确定数组里的数字是在给定范围内,否则返回-1
然后将所有元素从首位元素开始,将其放到对应号数的位置上
反复循环,一直将首位元素换作
含有重复数字
例如
nums =[2,1,4,3,2]
- 判断数字是否在范围内就不作解释,自行遍历每一个元素,判断是否在内即可
交换后nums[2]=2,那么此时的nums[0]=4,所以需要再将此时的num[0]中的值放入指定坑位
重复执行操作
此时num[0]=2,那么可以看到此时2号坑有相同元素2,所以无法交换
,此时的nums[0]上的2号不等于当前坑号,则返回当前元素
未包含重复元素
例如
nums =[2,1,4,0,3]
- 判断数字是否在范围内就不作解释,自行遍历每一个元素,判断是否在内即可