*[hackerrank]Maximizing XOR
生活随笔
收集整理的這篇文章主要介紹了
*[hackerrank]Maximizing XOR
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.hackerrank.com/contests/w1/challenges/maximizing-xor/
找了半天規律,答案竟然是暴力,傷感。我找到的方法是利用規律2^x XOR 2^x - 1會最大,感覺稍微效率高點。
int maxXor(int l, int r) {if (l == r)return 0;int p = 1;for (int i = 0; i <= 10; i++) {if (p * 2 > r)break;p *= 2;}if (p - 1 >= l)return (p - 1) ^ p;elsereturn maxXor(l - p, r - p); }但事實上有個O(1)的方法:https://www.hackerrank.com/challenges/maximizing-xor/forum/questions/5407 ? @UlyssesB
2^((L XOR R).bit_length) - 1其實和我的方法類似,但更高效。就是找出L和R最左邊第一個不同的bit,那么之后的部分,肯定有個從類似7=>8 的過程,必然能得到15。
轉載于:https://www.cnblogs.com/lautsie/p/3915928.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的*[hackerrank]Maximizing XOR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 55种网页常用小技巧
- 下一篇: 有人知道,王世龙主任治疗特发性震颤有什么