[LeetCode] 3487. Maximum Unique Subarray Sum After Deletion

Chobby·2026년 1월 14일

LeetCode

목록 보기
919/945

😎풀이

  1. nums 순회
    1-1. 최댓값 기록
    1-2. 음수이거나, 이미 탐색된 수는 생략
    1-3. 현재 수를 누적
  2. 최댓값이 음수라면, 부분배열의 최대 합은 해당 음수 하나가 됨
  3. 아닐 경우, 모든 고유한 양수를 더한 값이 최댓값이 됨
function maxSum(nums: number[]): number {
    const seen = new Set()
    let sum = 0
    let max = -Infinity
    for(const num of nums) {
        max = Math.max(max, num)
        if(num <= 0) continue
        if(seen.has(num)) continue
        seen.add(num)
        sum += num
    }
    if(max < 0) return max
    return sum
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글