var shortestToChar = function(s, c) {
let res=new Array(s.length).fill(0)
let idx=-s.length
for(let i=0
if(s[i]===c){
idx=i
}
res[i]=i-idx
}
idx=s.length*2
for(let i=s.length-1
if(s[i]===c){
idx=i
}
res[i]=(idx-i)>res[i]?res[i]:(idx-i)
}
return res
}
var subarraySum = function(nums, k) {
let mp=new Map()
mp.set(0,1)
let pre=0,count=0
for(let i of nums){
pre=pre+i
if(mp.has(pre-k)){
count=count+mp.get(pre-k)
}
if(mp.has(pre)){
mp.set(pre,mp.get(pre)+1)
}else{
mp.set(pre,1)
}
}
return count
};
var pivotIndex = function(nums) {
let i=0
while(i<nums.length){
let lsum=0,rsum=0
for(let l=0
lsum+=nums[l]
}
for(let r=i+1
rsum+=nums[r]
}
if(lsum===rsum){
return i
}else{
i++
}
}
return -1
}
var pivotIndex = function(nums) {
const total=nums.reduce((a,b)=>a+b,0)
let sum=0
for(let i=0
if(sum*2+nums[i]===total){
return i
}
sum=sum+nums[i]
}
return -1
}
var findMaxLength = function(nums) {
let mp=new Map()
let pre=0,res=0
mp.set(0,-1)
for(let i=0
pre=pre+(nums[i]===0?-1:1)
if(mp.has(pre)){
res=Math.max(res,i-mp.get(pre))
}
else{
mp.set(pre,i)
}
}
return res
}