LeetCode Entry

3487. Maximum Unique Subarray Sum After Deletion

25.07.2025 easy 2025 kotlin rust

Max non-empty uniq subsequence sum

3487. Maximum Unique Subarray Sum After Deletion easy blog post substack youtube 1.webp

Join me on Telegram

https://t.me/leetcode_daily_unstoppable/1060

Problem TLDR

Max non-empty uniq subsequence sum #easy

Intuition

Remove all negatives, dedup all positives, then sum.

Approach

  • careful with non-empty, should take 1 negative

Complexity

  • Time complexity: \(O(n)\)

  • Space complexity: \(O(n)\)

Code


// 23ms
    fun maxSum(n: IntArray) =
        n.max().takeIf { it < 0 } ?:
        n.filter { it > 0 }.distinct().sum()


// 12ms
    fun maxSum(n: IntArray): Int {
        val f = IntArray(101)
        for (x in n) if (x >= 0) f[x] = x
        return n.max().takeIf { it < 0 } ?: f.sum()
    }


// 0ms
    pub fn max_sum(mut n: Vec<i32>) -> i32 {
        n.sort_unstable(); n.dedup();
        if n[n.len() - 1] < 0 { n[n.len() - 1] }
        else { n.retain(|&x| x > 0); n.into_iter().sum() }
    }


// 1ms
    int maxSum(vector<int>& n) {
        int f[101]={}, m = n[0], s = 0;
        for (int x: n) m = max(m, x), s -= x < 0 ? 0 : (f[x] - (f[x] = x));
        return m < 0 ? m : s;
    }