Leet Code 알고리즘
(Leet Code JS)Maximum Erasure Value
naeunchan
2022. 6. 18. 15:03
728x90
반응형
https://leetcode.com/problems/maximum-erasure-value/
Maximum Erasure Value - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
Set과 Two pointer를 활용한 문제 풀이.
sliding window 구조 형태로 동작.
for문으로 nums를 순회한다.
순회할 시 left, right 변수를 이용한다.
두 변수는 sliding window의 범위를 조절하는 역할을 한다.
만약 obj에서 nums[right]]에 해당하는 숫자가 있다면
nums[right] 이전 까지의 수를 current에서 빼도록 한다.
또한, 객체에서도 nums[left]를 지워주고, left++을 하여 윈도우를 움직인다.
while문이 끝나면 obj[nums[right]] = true로 넣어주고,
current += nums[right]를 하여 값을 더해준다.
answer는 answer와 current 중 더 큰 값을 고르면 된다.
var maximumUniqueSubarray = function(nums) {
let answer = 0;
let current = 0;
const obj = {};
for(let left = 0, right = 0; right < nums.length; right++){
while(obj[nums[right]]){
current -= nums[left];
delete obj[nums[left++]];
}
obj[nums[right]] = true;
current += nums[right];
answer = Math.max(answer, current);
}
return answer;
};
728x90
반응형