int Repeat(int *a, int n){for(int i = 0; i < n; i++){if(a[i] > 0) //判断条件{if(a[ a[i] ] < 0){return a[i];//已经被标上负值了,有重复}else{a[ a[i] ]= -a[a[i]]; //记为负} }else // 此时|a[i]|代表的值已经出现过一次了{if(a[-a[i]] < 0){return -a[i];//有重复找到}else{a[ -a[i] ] = -a[ -a[i] ];}}}return -1;//数组中没有重复的数}