Untitled

 avatar
unknown
plain_text
2 years ago
684 B
2
Indexable
vector<int> largestSubarraySumZero(int n, vector<int> arr){
    int len = 0, start = -1, sum = 0;

    map<int, int> m;
    m[sum] = -1;
    for(int i=0; i<n; ++i)
    {
        sum += arr[i];

        if(m.find(sum) == m.end()) 
            m[sum] = i;
        else 
        {
            int curr = i - m[sum];

            if(len < curr)
            {
                len = curr;
                start = m[sum];
            }
        }
    }

    if(len == 0) 
    return {-1};
    else
    {
        vector<int> ans;
        for(int i=start+1; i<=start+len; ++i)
        {
            ans.push_back(arr[i]);
        }
        return ans;
    } 
}
Editor is loading...