📝题目
1 | 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 |
📝思路
与抽屉原理同理,即如果没有重复数字,那么正常排序后,数字i应该在下标为i的位置。因为出现的元素值必然小于数组长度,所以可以把见到的元素放到索引的位置,如果交换时,发现索引处已存在该元素,则重复。
📝题解
1 | int findRepeatNumber(vector<int>& nums) { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.