方法一:
使用map集合记录每个元素出现的次数;
然后遍历map集合,寻找出现一次的元素
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param arr int一维数组
* @param k int
* @return int
*/
function foundOnceNumber( arr , k ) {
let map = new Map();
for(let i=0;i<arr.length;i++){
if(map.has(arr[i])){
map.set(arr[i],map.get(arr[i])+1)
}
else{
map.set(arr[i],1)
}
}
for(let item of map.entries()){
if(item[1]===1){
return item[0];
}
}
}
module.exports = {
foundOnceNumber : foundOnceNumber
};
方法二:
对数组排序;
如果后一个元素等于当前元素,i值+k;
否则直接返回该值;
function foundOnceNumber( arr , k ) {
arr.sort();
for(let i=0;i<arr.length;){
if(arr[i]===arr[i+1]){
i = i+k;
}else{
return arr[i]
}
}
}