事件还早,再来一个简单的吧
题目描述:
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。
主要思路
拿一个辅助数组先将所给数组的第一个值给它,遍历所给数组的同时。拿遍历的当前元素去辅助数组里找,看是否有相同的。有则返回没有则把这个元素也加到辅助数组
代码
function duplicate(numbers, duplication) {
// write code here
//这里要特别注意~找到任意重复的一个值并赋值到duplication[0]
//函数返回True/False
duplication[0] = -1;//别问我为什么要给它一个-1的值,问我也只能说牛客逼的。不然我下面判断返回true还是fasle的时候不好说
let arr = [];
arr.push(numbers[0]);
for (let i = 1; i < numbers.length; i++) {
if (arr.includes(numbers[i])) {
duplication[0] = numbers[i];
break;
} else {
arr.push(numbers[i]);
}
}
if (duplication[0] != -1) {
return true;
} else {
return false;
}
}