我们令每一个元素按自己的索引放置,这里是一个鸽巢原理的应用,假如我们有10个苹果需要放入9个抽屉,那么必定会有两个苹果放在一个抽屉。
当nums[i]存放的元素在之前已经出现,我们返回该重复元素
所以我们具体怎么做?
按序将元素放到索引值上,判断是否满足nums[i]=i,假如没有,交换元素nums[i]和nums[nums[i]]
接着判断是否重复
nums[nums[i]]==nums[i]
这里我随机列举了一个数组
过程如下:
附上代码
leedcode-剑指offer03
于 2022-11-09 23:11:03 首次发布