2023年6月16日 星期五

[2220] Minimum Bit Flips to Convert Number

咦 XD 用直覺的想法寫了果然笨笨的!!!
看了別人的超速解法結果看不懂!
但exclusive or 的部份還是很好用XD
拿來改一下就也變快了~~~~~

#if 0 //原本笨方法
int minBitFlips(int start, int goal){
int big=0,small=0, count=0;
big = (start > goal)? start: goal ;
small = (start > goal)? goal: start;
while (big>0)
{
int modBig= big%2;
int modSmall= small%2;
if (modBig!=modSmall)
count++;
big = big>>1;
small=small >>1;
}
return count;
}
#else //原來先XOR一下再去算有幾個1就好了!!!
int minBitFlips(int start, int goal){
int check = start ^ goal;
int count = 0;
while (check >0)
{
if (check%2==1)
count++;
check = check >>1 ;
}
return count;
}
#endif

沒有留言:

張貼留言