바구니에 담긴 과일
8318 단어 leetcodejavascript
var totalFruit = function (fruits) {
let map = new Map();
let max = 0;
let tempArray = [];
let end = 0;
let array = fruits;
let k = 2; // as total fruits is two you can have at a time
while (array.length > end) {
const nextChar = array[end];
if (map.size < k && !map.has(nextChar)) {
map.set(nextChar, 1);
end++;
tempArray.push(nextChar);
} else if (map.size <= k && map.has(nextChar)) {
map.set(nextChar, map.get(nextChar) + 1);
end++;
tempArray.push(nextChar);
} else if (map.size === k && !map.has(nextChar)) {
while (map.size === k) {
// save the current
if (tempArray.length > max) {
max = tempArray.length;
}
let startValue = tempArray.shift();
map.set(startValue, map.get(startValue) - 1);
if (map.get(startValue) === 0) {
map.delete(startValue);
}
}
}
}
return max > tempArray.length ? max : tempArray.length;
};
console.log(totalFruit([1, 1, 1, 1, 1, 1, 1, 3, 2, 1]));
console.log(totalFruit([1, 2, 1], 2));
console.log(totalFruit([1, 2, 3, 2, 2]));
console.log(totalFruit([0, 1, 2, 2]));
Reference
이 문제에 관하여(바구니에 담긴 과일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zeeshanali0704/fruit-into-baskets-247j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)