本文主要是介绍(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目描述:
原地交换解法
- 由于给定数组必有重复元素 且元素范围为[0 ~ n-1] 故至少有一个元素对应数组的某个下标
- 从下标为0的元素开始遍历
- 若当前元素等于下标 循环继续
- 只当当前元素等于下标时 下标加一 即如果找不到重复元素则一直交换 直到找到重复元素或当前元素等于下标
- 此条规则为 原地交换 的核心思想
- 即下标不变 nums[i] 与 nums[nums[i]]交换
- 若交换一次后则下标加一
- 以下数组 : 3,4,2,0,0,1 将无法找到重复元素
- 如果当前元素等于nums[num[i]] 则找到重复元素
- 其他情况则原地交换
- nums[i] 与 nums[nums[i]]交换
这篇关于(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!