给定每个小于数组大小的元素,查找数组中的第一个重复元素

Find first duplicate element in the array given every element smaller than the array size

本文关键字:数组 元素 查找 第一个 小于      更新时间:2023-09-26

输入:[3,4,6,1,3,5,4]

输入是一个具有重复项的未排序数组。请注意,数组中的每个元素都小于其大小7。

输出:3,这是第一个重复的元素。

我可以很好地使用映射来找出第一个重复元素,但不知道是否有更好的解决方案,就像在所有数组元素都小于数组的问题中提到的那样。

你能帮我想出一个javascript中这个问题的最佳解决方案吗?谢谢

最快的可能是

var arr = [3,4,6,1,3,5,4];
var first, len=arr.length, i=0;
for (i; i<len; i++) {
	if (arr.lastIndexOf(arr[i]) !== i) {
    	first = arr[i];
        break;
    }
}
console.log(first)

写得最短,类似

var arr = [3,4,6,1,3,5,4];
var first = arr.filter((k,i)=> i!== arr.lastIndexOf(k))[0];
console.log(first)