var canIWin = function(maxChoosableInteger, desiredTotal) {
if(maxChoosableInteger>=desiredTotal)return true
if((1+maxChoosableInteger)*maxChoosableInteger/2<desiredTotal)return false
const dp={}
const f=(total,state)=>{
if(dp[state]!==undefined)return dp[state]
for(let i=1;i<=maxChoosableInteger;i++){
let cur=1 << i
if(cur & state)continue
if(i>=total)return dp[state]=true
if(!f(total-i,state | cur))return dp[state]=true
}
return dp[state]=false
}
return f(desiredTotal,0)
};
var findSpecialInteger = function(arr) {
var map=new Map()
arr.forEach(item=>map.set(item,map.has(item)?map.get(item)+1:1))
for(let [i,j] of map){
if(j>arr.length/4) return i
}
};
var commonChars = function(words) {
let res=[]
let word=words[0]
for(let i of word){
if(words.every(m=>m.includes(i))){
words=words.map(k=>k.replace(i,''))
res.push(i)
}
}
return res
}