Untitled
class Solution { public: int maxLen(vector<int>& arr) { int n=arr.size(); int prefixSum=0; int ans=0; map<int,int>prefixMp; prefixMp[0]=-1; for(int i=0;i<n;i++){ prefixSum+=arr[i]; if(prefixMp.find(prefixSum)!=prefixMp.end()) { int idx=prefixMp[prefixSum]; int windowSize=(i-idx); ans=max(ans,windowSize); }else{ prefixMp[prefixSum]=i; } } return ans; } };
Leave a Comment