this was literally the best explanation, i have been trying to understand the reason behind this approach for quite some time now, been surfing youtube all day today. and finally. good work. thank you!
Oh f . I did this using the BIT MANIP trick you taught in one of your previous videos . I guess the tc would still be equal to the no of bits right? #define ll long long class Solution { public: void calcBitRange(vector&bits, int num) { if (num==0) { return ; } if (num==1) { bits[0]++ ; return; } else if (num==2) { bits[0]++; bits[1]++ ; return ; } ll bitLen = log2(num); ll nearPowerOf2 = 1ll =0 ;i --) { bits[i]+= nearPowerOf2 >> 1ll ; } calcBitRange(bits,num-nearPowerOf2); return ; } int rangeBitwiseAnd(int left, int right) { vectorrange1(65,0) ; vectorrange2(65,0) ; if (left==0) return 0 ; if (left>1) calcBitRange(range1,left-1); calcBitRange(range2,right); ll ans = 0 ; for (int i =0 ; i
1:20 😂 bro that cracked me up...
this was literally the best explanation, i have been trying to understand the reason behind this approach for quite some time now, been surfing youtube all day today. and finally. good work. thank you!
Glad it was helpful Sakshi 🙇🫡🫂
loved the explanation. Watched explanation video from neetcode and didnt understand much , this one was so simple and intiutive
from 8:16 to 8:48, you can avoid that and video will become shorter and crisp. You are doing great
Amazing approach ❤
Can you make a video of your day time table ?
Yes please!
yes please
amazing approach bhaiya
Thanks Aryan ❤
just thankyou for existinggg
Thankyou my brother amazing.
thanks
nice explanation
nice approach
badia
Oh f . I did this using the BIT MANIP trick you taught in one of your previous videos . I guess the tc would still be equal to the no of bits right?
#define ll long long
class Solution {
public:
void calcBitRange(vector&bits, int num) {
if (num==0) {
return ;
}
if (num==1) {
bits[0]++ ;
return;
}
else if (num==2) {
bits[0]++;
bits[1]++ ;
return ;
}
ll bitLen = log2(num);
ll nearPowerOf2 = 1ll =0 ;i --) {
bits[i]+= nearPowerOf2 >> 1ll ;
}
calcBitRange(bits,num-nearPowerOf2);
return ;
}
int rangeBitwiseAnd(int left, int right) {
vectorrange1(65,0) ;
vectorrange2(65,0) ;
if (left==0) return 0 ;
if (left>1) calcBitRange(range1,left-1);
calcBitRange(range2,right);
ll ans = 0 ;
for (int i =0 ; i
please provide your onenote page
link
why chatgpt says O(log(right)) time complextiy ?
if u take the maximum value of right according to question then it will be 2^32 then O(log(2^32)) gives you O(32) which is O(1).
worst case time complexity is O(32). cause at max we might end up taking 32 traversals.