gpt4 book ai didi

javascript - JS : Finding unpaired elements in an array

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:18 26 4
gpt4 key购买 nike

我有the following question (这不是学校 - 只是代码站点练习题)而且我看不出我的解决方案缺少什么。

给定一个由N个整数组成的非空数组A。该数组包含奇数个元素,并且数组的每个元素都可以与具有相同值的另一个元素配对,但一个元素未配对。

假设:

  • *N为[1..1,000,000]范围内的奇数;
  • *数组A的每个元素都是[1..1,000,000,000]范围内的整数;
  • *A 中除一个值外的所有值均出现偶数次。

例如:A = [9,3,9,3,9,7,9]结果:7

官方的解决方案是使用按位异或运算符:

function solution(A) {

var agg = 0;

for(var i=0; i<A.length; i++) {
agg ^= A[i];
}

return agg;
}

我的第一直觉是跟踪 Map 查找表中每个值的出现,并返回唯一值出现一次的键。

function solution(A) {

if (A.length < 1) {return 0}
let map = new Map();
let res = A[0]
for (var x = 0; x < A.length; x++) {
if (map.has(A[x])) {
map.set(A[x], map.get(A[x]) + 1)
} else {
map.set(A[x], 1)
}
}
for ([key,value] of map.entries()) {
if (value===1) {
res = key
}
}

return res;
}

我觉得我处理了任何边缘情况,但我仍然没有通过一些测试,而且自动评分器的正确率为 66%。

最佳答案

你可以使用 Set并检查删除是否删除了一个项目。如果不是,则将该值添加到集合中。

function check(array) {
var s = new Set;

array.forEach(v => s.delete(v) || s.add(v));

return s.values().next().value;
}

console.log(check([9, 3, 9, 7, 3, 9, 9])); // 7

关于javascript - JS : Finding unpaired elements in an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com