I did it by droping the least significant bit and checking if the number becomes zero. To drop least significant bit i used (x & (x -1)) expression.
@techdose4u4 жыл бұрын
Good :)
@siddharthsingh94094 жыл бұрын
I also did the same!
@agileprogramming74634 жыл бұрын
Crystal clear explanation as always sir! The efforts you are taking is remarkable
@techdose4u4 жыл бұрын
Thanks agile :)
@harinaaraayans34534 жыл бұрын
we can just check if the number is a divisor of the max value of that programming language.. example... in C++ if a number divides 32768, it i s a power of 2. this is much faster than taking log
@techdose4u4 жыл бұрын
Use built-in function instead.
@CSKAASIPRASANTHA2 жыл бұрын
Excellent explanation with efficient solution.
@acxd4 жыл бұрын
another approach (using in-built function) if(__builtin_popcount(n) ==1 and n>0 ) return true; else return false; the above is also an O(1) approach
@techdose4u4 жыл бұрын
Yes....built-in is O(1).
@abhishekdas83132 жыл бұрын
Language?
@paranjoypaul33294 жыл бұрын
One more method... if(n
@techdose4u4 жыл бұрын
Everyone has used the same approach 😅
@jayajmire67794 жыл бұрын
What is its run time
@rohanprak4 жыл бұрын
@@jayajmire6779 O(1)
@rohanprak4 жыл бұрын
@@techdose4u indeed , bro , everyone who knew fenwick tree, may have used it probably, as Fenwick is the game of last set bit. XD
@chandanchandak51942 жыл бұрын
(n &(n-1))==0 is enough to determine if its power of two or not
@mujahidpasha44404 жыл бұрын
Really appreciate your efforts and time you spend on teaching... Thank you very much... Saw a few videos of you and right away subscribed to your channel... It's worth subscribing :)
@techdose4u4 жыл бұрын
Thanks :)
@AbhinavKumar-dr4ef3 жыл бұрын
Krishna bless you. Nice explanation.
@sudhanshukumar15584 жыл бұрын
In python I did Exponent = int(math.log(n,2)) return True if 2**Exponent == n else False Thanks for sharing your solutions, the 2 and 3 solutions were great 😃
@techdose4u4 жыл бұрын
👍
@ayonsinha2075 Жыл бұрын
time compjlexity will be log n for this case ...isn't it??
@shivanshutiwari56464 жыл бұрын
I loved 4 rh method. Its great
@techdose4u4 жыл бұрын
👍
@bhanuprasad67932 жыл бұрын
nice explation worth of watching
@karansagar78704 жыл бұрын
Nice approach
@techdose4u4 жыл бұрын
👍
@lapujain4 жыл бұрын
Amazing teaching skills, you made me learn a new way to do problems in a very simple way. My solution to this problem was using bitset class P.S : Without sizeof(int) it will pass 1107 test cases. class Solution { public: bool isPowerOfTwo(int n) { bitset i(n); if (i.count() == 1) return true; return false; } };
@techdose4u4 жыл бұрын
Nice :)
@saisrisai96494 жыл бұрын
Awesome 👏🏻 👏🏻👏🏻
@techdose4u4 жыл бұрын
Thanks :)
@nightfury1250 Жыл бұрын
Here the code of all four methods in javascript. 1) By Recursion const isPower2 = (n) => { if (n === 1) return true; if (n % 2 !== 0) return false; return isPower2(n / 2); }; 2) By Counting Set Bits const isPower2ByCountingSetBits = (n) => { let count = 0; let add = 1; while (add
@ShubhamMahawar_Dancer_Actor4 жыл бұрын
In some post i also saw solution if (n&(n-1))==0 return true else false but i think that will will fail for number out of range for int.??
@techdose4u4 жыл бұрын
Number will be in int only. So no problem.
@ShubhamMahawar_Dancer_Actor4 жыл бұрын
@@techdose4u but its giving runtime error while running this solution You can check once please?
@rohanprak4 жыл бұрын
this will work even if no is out of range of Long ! , error kaha se aa gaya bro ? comment your code.
@hakoHiyo2713 жыл бұрын
Very nice video of explanation! Thank you!
@techdose4u3 жыл бұрын
Welcome :)
@andriidanylov9453 Жыл бұрын
Brilliant. Appreciate.
@fatimajaffal98434 жыл бұрын
class Solution { public: bool isPowerOfTwo(int n) { if(n
@AnandKumar-uy7nn3 жыл бұрын
Thanks for giving such a great content. 💗💗💗
@uditagrawal66033 жыл бұрын
n&n-1 = 0 for power of 2 with n > 1
@techdose4u3 жыл бұрын
👍🏼
@ManojKrVerma-vw4dx4 жыл бұрын
You have told that tc for log method is O(1) bt How? Finding log itself is log N. Correct me if I am wrong ??
@techdose4u4 жыл бұрын
There are many ways to find log. You don't have to specifically use log2. But as far as I know, standard library log2() is O(1). You can use __builtin_clzl(N)-1 to find log in O(1). This is guaranteed. Follow stackoverflow for this.
@karansagar78704 жыл бұрын
@@techdose4u can u explain this in coming video just brief
@blahita3 жыл бұрын
Thanks for the great explanation! What is the software that you are using for explaining?
@Ayush-bj8gk2 жыл бұрын
sir in first method 3/2 will give 1 where as 2/2 will also give 1 How to handle this?
@atulpunde47863 жыл бұрын
Awesome..❤️
@techdose4u3 жыл бұрын
Thanks :)
@satyamdubey41103 жыл бұрын
👏👏❤
@techdose4u3 жыл бұрын
❤️
@PARAxITACHI4 жыл бұрын
how 2nd method hv complexity og log2(n).
@KD-xi9wu3 жыл бұрын
What if the number is too large and given in the form of String ?????????????????????????
@techdose4u3 жыл бұрын
Just check that 1st char of strong should be 1 and rest all 0s. That's it.
@Yash-uk8ib4 жыл бұрын
sir plzz make a video on time complexity analysis plzz..
@techdose4u4 жыл бұрын
That will be possible only when the leetcode challenges ends.
@HimanshuSingh-ob9qo4 жыл бұрын
👍
@techdose4u4 жыл бұрын
👍
@fb_a3 жыл бұрын
Isn't the internal implementation of log() function time complexity is O(log(N) )?
@ayonsinha2075 Жыл бұрын
exactlly that is my confusion
@Pratik_yadaw2 жыл бұрын
thanks you so much sir!
@sahithikomirishetti33804 жыл бұрын
Love in with your explanation including the complexities
@techdose4u4 жыл бұрын
Thanks :)
@JAG112AOАй бұрын
what does it power of two mean?
@ankitalone89063 жыл бұрын
Thank you so much ❤️
@01utpalraj952 жыл бұрын
There is one more method that if n&(n-1) is zero then n is 2 ki power sm.
@prabhatchanchal4 жыл бұрын
I used N>0 && (N&(N-1)==0)
@techdose4u4 жыл бұрын
Nice
@HimanshuKumar-bf3pq6 ай бұрын
last method will fail for 5 test cases from almost 21000 test cases, one failed test case is 243 as log(243)/log(3) = 5.000000000000001 which fails ceil and floor
@mayankprakash96514 жыл бұрын
OMG Aaj hm bhul gaye the aur time ho gaya tha 12:27 am hmko laga gaye phir jakr dekhe tab 3 min bacha hua tha due to PCD time , uske baad hm yaha wala GitHub code copy kar diye jaldi se.😑
@techdose4u4 жыл бұрын
Time ends at 12:30 AM noon in INDIA.
@mayankprakash96514 жыл бұрын
@@techdose4u Oo mistake am and pm.
@techdose4u4 жыл бұрын
Try to solve on time bro. You have 24 hrs.
@j4hnvi Жыл бұрын
First Method is incorrect. If you take 14 as example and divide it by 2 we get 1 in the end but it isn't power of two.