Back to Month
MEDIUM 21 Jul 2026 View on LeetCode

3499. Maximize Active Section with Trade I

</> Solution

class Solution {
    public int maxActiveSectionsAfterTrade(String s) {
        int n = s.length();
        int ones = 0;
        int maxMerge = 0;
        int prevZeroBlock = Integer.MIN_VALUE;
        int i = 0;
        while (i < n) {
            int j = i;
            while (j < n && s.charAt(j) == s.charAt(i)) {
                j++;
            }
            int len = j - i;
            if (s.charAt(i) == '1') {
                ones += len;
            } else {
                maxMerge = Math.max(maxMerge, prevZeroBlock + len);
                prevZeroBlock = len;
            }
            i = j;
        }
        return ones + maxMerge;
    }
}

TIME COMPLEXITY

O(n)

SPACE COMPLEXITY

O(1)

TOPICS

Greedy String Two Pointers