题解 | #数组中重复的数字#
数组中重复的数字
https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numbers int整型一维数组 * @param numbersLen int numbers数组长度 * @return int整型 */ //思路: //定义一个新数组num,初始化为0,有题目知数组中数的范围和下标范围一致 //然后将原数组里的值作为新数组num的下标,在原数组中找到与该下标一样的值,则下标指向的值自增 //最后检查那个下标指向的值大于1,即为重复值 int duplicate(int* numbers, int numbersLen ) { // write code here //定义一个新数组num,初始化为0,有题目知数组中数的范围和下标范围一致 int num[numbersLen]; int i; for(i=0; i<numbersLen; i++) { num[i] = 0; } //然后将原数组里的值作为新数组num的下标,再原数组中找到与该下标一样的值,则下标指向的值自增 for(i=0; i<numbersLen; i++) { num[numbers[i]]++; } //最后检查那个下标指向的值大于1,即为重复值 for (i=0; i<numbersLen; i++) { if(num[numbers[i]]>1) { return numbers[i]; } } return -1; //别忘了函数要有返回值 }