Subarrays with distinct elements

“subarrays with distinct elements” ki approach bhi bta do?

hello @CODER_JATIN

pehle tum ye batao , agar tumhe L lenght ki array di hui hai to uske smaller subarray length ka sum kitna banega (starting from one end)?

mere hisab se n*(n+1)/2 banne chahiye

ha . . . . . .

to isproblem me bhi yahi use karna hai, do pointer rakho(ek pointer starting point ke liye aur ek point ending point ke liye)
first element se expand karna suru karo , aur tabtak expand karo jabtak distinct element aa rahe hai. maan lo total L expand hua,
to isko add karlo apne answer me.
ans+=(L * (L+1)/2)

ab kyunki window me aur dintinct elements nahi aa sakte hai, hum starting elemnt ko remove karneg aur window shrink karnege.

isiko ko repeat karna hai baaki remaining element pe

@CODER_JATIN

ab isko dekho aur batao kuch samjh aa raha hai ya nahi.

int sumOflength(int *arr, int n) {
    unordered_set<int> s;
    int j=0, ans=0;
    for(int i=0;i<n;i++) {  // j hamara right pointer hai , i hamara left pointer hai
        while(j<n and s.find(arr[j])==s.end()) { // expand kar rahe hai jabtak distint element hai
            s.insert(arr[j]);
            j++;
        }
        ans+= ((j-i)*(j-i+1))/2;// j-i jo hai wo L hai 
        s.erase(arr[i]);//starting element ko erase kar rahe hai kyuni ab window me distinct element nahi hai
    }
    return ans;
}

bhaiya ye pehla point to smjh aa gya window kb tk expand krni hai or kab shrink karni hai

ab dusra point smjh rha hu . . . . .

ans+= ((j-i)*(j-i+1))/2;,
bhaiya isse to no of subarrays niklenge na us length mai kitne subarrays hai vo pta lgega na isse to?

ha … . . . .
ab kyunki jo subarray hamne nikali hai usme saare element distinct hai .
to is subarray be jitne bhi possible smaller subarray(starting from i) honge wo sab bhi distinct element hold karnege haina?

isilye wo formula use kar rahe hai.

bhaiya maanlo i=0 hai or j=4 hai ,
to jab ham ye formula use karenge tb (0 to 4) length mai jitne bhi subarrays hai vo aa gye hmare paas , ab jab ham loop ki next iteration m aayenge tb , i=1 hojega or j=4 hi rhega to jo ab firse ham subarrays nikaalenge, ab jo subarrays aaye vo to ham pehle hi i=0 waali iteration mai nikaal chuke hai already?
to repeat ni hore subarrrays?

bhaiya maanlo i=0 hai or j=4 hai ,
to jab ham ye formula use karenge tb (0 to 4) length mai jitne bhi subarrays hai vo aa gye hmare paas , ab jab ham loop ki next iteration m aayenge tb , i=1 hojega or j=4 hi rhega to jo ab firse ham subarrays nikaalenge, ab jo subarrays aaye vo to ham pehle hi i=0 waali iteration mai nikaal chuke hai already?
to repeat ni hore subarrrays?

bro ,sum of length hai na sawal me.

jaise tume i=0 aur j=4 hai to 4-0 = 4 hogya ?
[0] , [0.1] , [0,1,2] , [0,1,2,3]
inka lenght ka sum karo?
1 + 2 + 3 + 4 -> 10 ( jo ki 4 * (4+1)/2 ke barabar hai)

maine subarray word galat use kar liya isiliye tumhe confusion ho gayi sayad

hanji bhaiya , mai vahi to confuse ho gya

hanji bhaiya , mai vahi to confuse ho gya . .

abhi bhi hai kya confusion… . . .

L length ki subarray me smaller kitni length hongi
1 (1 lengt ki ek hogi )
2 (2 length ki ek hogi)
3 (3 length ki ek hogi)
L (L length ki ek hogi)

in length ka sum kita hoga
1 + 2 + 3 + 4 + …L -> (L *(L+1) /2)

ab bhi confusion hai to batao

bhaiya je jo formula hai (l)*(l+1)/2 isse hamey no of subarrays pata lagte hai ek particular length mai,
ham saare subarrays ko plus kar rhe to hamey subarrays ki length pta lg rhi hai.

ss

is dekho
ab ye 4 lenght ki array hai .
to ab un sab subarray ka lenght ka sum batao jisme 0 ho.
to answer kya hoga tumhara?

10 hoga? . . . . . . …

ha…
[0] -> 1 length
[0,1] -> 2 length
[0,1,2] -> 3 length
[0,1,2,3] -> 4 length
1+2 + 3 + 4 =10 ( using formula 4*(4+1)/2 = 10 )
yahi bata raha tha tabse , wo suru me swal mujhe thoda clear kar dena chaiye tha , confusion avoid karne ke lie.

kuch confusion ho to batao