Hackerrank "maximizing XOR"

Source: Internet
Author: User

A natural thought is brutal-force. But as you may have already thought of, there must be a smarter one. And yes there is.

Think like this: XOR gives you all different bits, if you cocould imagine the binary representation of L ^ r, it can be represented as: 1xxxxx... what is asked is the 'maximum 'value of L ^ r-and that means 1111111... so this maximum value only depends on which is the highest 1-it is irrelevant with all intermediate values. so now the question turns to be: Which is the highest bit of (L ^ r )?

Then an more elegant solution comes:

Int maxxor (int l, int R) {size_t bitlen = floor (log (L ^ r)/log (2); Return (2 <bitlen)-1 ;}

Lesson Learned: Make bit operations meaningful

Hackerrank "maximizing XOR"

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.