Java教程

(一)

本文主要是介绍(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目描述:

原地交换解法

  • 由于给定数组必有重复元素 且元素范围为[0 ~ n-1] 故至少有一个元素对应数组的某个下标
  • 从下标为0的元素开始遍历
  • 若当前元素等于下标 循环继续
  • 只当当前元素等于下标时 下标加一 即如果找不到重复元素则一直交换 直到找到重复元素或当前元素等于下标
    • 此条规则为 原地交换 的核心思想
    • 即下标不变 nums[i] 与 nums[nums[i]]交换
    • 若交换一次后则下标加一
    • 以下数组 : 3,4,2,0,0,1 将无法找到重复元素
  • 如果当前元素等于nums[num[i]] 则找到重复元素
  • 其他情况则原地交换
    • nums[i] 与 nums[nums[i]]交换
这篇关于(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!