// 给定一个整数数组,除了一个数字之外,其余的数字均出现了两次。
// 请找出这个只出现了一次的数。
// const arr = [10, 2, 2 , 1, 0, 0, 10]
// findSingle(arr) // 1
// 你的实现的时间空间复杂度是怎样的?能否做的更好。
/**
* @param {number[]} arr
* @returns number
*/
// function findSingle(arr) {
// // your code here
// const obj = {};
// let result;
// for(let item of arr) {
// if(!obj[item]) {
// obj[item] = 1;
// }else {
// obj[item] += 1;
// }
// };
// Object.entries(obj).forEach((item) => {
// const [key,value] = item;
// if(value === 1) {
// result = key;
// };
// });
// return result;
// };
// function findSingle(arr) {
// let result = 0;
// for(let num of arr) {
// result ^= num;
// };
// return result;
// };
function findSingle(arr) {
const count = new Map();
for (let num of arr) {
count.set(num,(count.get(num) || 0) + 1);
};
for(let [num,cnt] of count) {
if(cnt % 2 === 1) return num;
};
};
const arr = [10, 2, 2, 1, 0, 0, 10]
console.log(findSingle(arr));
// findSingle(arr) // 1
console.log(1 ^ 1,0^ 10 );
console