找出数组唯一重复的元素

Description:

  1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次.

最基本的解法就是sum - (1 + 2 + …… + 1000),不过由于问题的特殊性下标和数组中元素值的联系关系可以使用以下的解法

  index = array[len - 1] - 1;

  while (1) {

    if (array[index] < 0) break;

    array[index] *= -1;

    index = array[index] *(-1) - 1;

  }

这个其实可以转换为一个链表的形式,在编程中用到的也很多,但是没有想到编程的术语来描述它。

原文地址:https://www.cnblogs.com/chonghui1001/p/2192847.html