题解 | 数组中重复的数字
数组中重复的数字
https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524?tpId=265&tqId=39207&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D13&difficulty=undefined&judgeStatus=undefined&tags=&title=
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numbers int整型一维数组 * @param numbersLen int numbers数组长度 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ int duplicate(int* numbers, int numbersLen ) { // write code here int i = 0; int tmp = 0; while(i < numbersLen) { if(i == numbers[i]) { i++; continue; } if(numbers[i] == numbers[numbers[i]]) return numbers[i]; if(i != numbers[i]) { tmp = numbers[i]; numbers[i] = numbers[numbers[i]]; numbers[tmp] = tmp; //nums[i]的值已变,故要用tmp索引 } } return -1; }