通过map()保存数据,(key:当前值,value:下标)把相同的值存在一起
var totalFruit = function(fruits) {
const map=new Map()
let l=r=0
let max=1 //长度最小为1
for(r;r<fruits.length;r++){
//(key:值,value:下标),把相同的值存在一起
map.set(fruits[r],r)
//需要扔掉第一个水果,需要找到,第一个水果最后的下标
if(map.size>2){
let n=fruits.length-1
//找到最小的下标
for(let [key,index] of map){
if(index<n){
n=index
}
}
//找到最小下标,可知其key是fruits【】,map删除的是key
map.delete(fruits[n])
//更新l
l=n+1
}
//判断长度
max=Math.max(max,r-l+1)
}
return max
};