var divide = function(a, b) {
const INT_MIN = -Math.pow(2, 31)
const INT_MAX = Math.pow(2, 31) - 1
if (a == INT_MIN && b == -1) return INT_MAX
let res = 0
if (b == INT_MIN) {
return a == b? 1 : 0
}
if (a == INT_MIN) {
a -= -Math.abs(b)
res += 1
}
const sign = (a > 0) ^ (b > 0) ? -1 : 1
a = Math.abs(a)
b = Math.abs(b)
for (let x = 31
if ((a >>> x) - b >= 0) {
a = a - (b << x)
if (res > INT_MAX - (1 << x)) {
return INT_MIN
}
res = res + (1 << x)
}
}
if (res == -2147483648) return -2147483648
return sign == 1 ? res : -res
}
var addBinary = function(a, b) {
let ml=Math.max(a.length,b.length)
//padstart在前面补齐
a=a.padStart(ml,'0')
b=b.padStart(ml,'0')
let i=ml-1
let flag=0
let res=''
while(i>=0){
flag = Number(a[i]) + Number(b[i]) + flag
res=flag%2+res
flag=Math.floor(flag/2)
i--
}
res=flag==1?'1'+res:res
return res
}
var countBits = function(n) {
const res=[]
for(let i=0
const n=i.toString(2)
res.push(n.split('1').length-1)
}
return res
}
var singleNumber = function(nums) {
let map=new Map()
for(let i of nums){
map.set(i,map.has(i)?map.get(i)+1:1)
}
for(let [key,value] of map){
if(value===1){
return key
}
}
};