【牛客网】剑指offer编程题:数组中的重复数字(C++)

       这道题目主要考察数组相关的内容,思路也比较简单。题目中规定所有数字都在0~n-1的范围内,那么这个数组里的数值不会超出长度为n的数组的下标范围0~n-1,只需要找到任意一个重复的数值即可,我们可以对这个数组从头开始遍历:

1、如果 i 与numbers[i] 相等,遍历下一个元素;

2、如果 i 与numbers[i] 不相等,那么:

      如果 numbers[i] == numbers[numbers[i]],就是下标为 i 的元素数值与下标为 numbers[i]的元素数值相同,找到重复数字,返回true;如果 numbers[i] != numbers[numbers[i]],就将numbers[i] 与 numbers[numbers[i]]中的数值互换。继续进行步骤1、2,直到数组的最后一个元素,仍然没有找到数字的话,返回false;

【牛客网】剑指offer编程题:数组中的重复数字(C++)

相关文章:

  • 2021-08-29
  • 2021-09-01
  • 2021-10-21
  • 2022-02-18
  • 2021-04-26
猜你喜欢
  • 2021-05-12
  • 2021-09-29
  • 2021-07-11
  • 2021-08-16
  • 2021-06-13
  • 2021-12-15
相关资源
相似解决方案