Longest Balanced Subarray I

Medium
Watch on YouTube ↗

Solution

class Solution {
    public int longestBalanced(int[] nums) {
        int maxlen = 0;
        // O(n)
        HashSet<Integer> even = new HashSet<>();
        HashSet<Integer> odd = new HashSet<>();

        for(int i=0; i<nums.length; i++) {
            // O(n^2)
            odd.clear();
            even.clear();
            for(int j=i; j<nums.length; j++) {
                if(nums[j]%2==0)
                    even.add(nums[j]);
                else odd.add(nums[j]);
                if(even.size()==odd.size()) {
                    maxlen = Math.max(maxlen, j-i+1);
                }
            }
        }

        return maxlen;
        
    }
}