Skip to content

Conversation

DataWorshipper
Copy link

Description of Change

This pull request adds a Python implementation of the Bitwise Trie (Binary Trie) to solve the Maximum XOR of Two Numbers in an Array problem.

The algorithm constructs a binary trie for all 32-bit integers in the input array and efficiently queries the maximum XOR achievable for each number. The implementation is self-contained and includes multiple test cases to ensure correctness.

Checklist

  • Added description of change
  • Added file name following Python file guidelines
  • Added tests and example; tests must pass
  • Added documentation so that the program is self-explanatory and educational
  • Relevant documentation/comments added or updated
  • PR title follows semantic commit guidelines
  • Searched previous suggestions to avoid duplicates
  • I acknowledge that all my contributions will be made under the project's license

Notes:

  • Efficient O(n * log(MAX_VAL)) solution for finding the maximum XOR pair in an array using a bitwise trie.
  • Includes extensive tests for edge cases, duplicates, and arrays with single elements.
  • Uses standard Python type hints (list[int]) and 32-bit integers for consistency.

@algorithms-keeper algorithms-keeper bot added the require tests Tests [doctest/unittest/pytest] are required label Oct 3, 2025
Copy link

@algorithms-keeper algorithms-keeper bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Click here to look at the relevant links ⬇️

🔗 Relevant Links

Repository:

Python:

Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.

algorithms-keeper commands and options

algorithms-keeper actions can be triggered by commenting on this PR:

  • @algorithms-keeper review to trigger the checks for only added pull request files
  • @algorithms-keeper review-all to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.

NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.

def __init__(self) -> None:
self.root = TrieNode()

def insert(self, num: int) -> None:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no test file in this pull request nor any test function or class in the file bit_manipulation/max_xor_bit_trie.py, please provide doctest for the function insert

node.child[bit] = TrieNode()
node = node.child[bit]

def query_max_xor(self, num: int) -> int:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no test file in this pull request nor any test function or class in the file bit_manipulation/max_xor_bit_trie.py, please provide doctest for the function query_max_xor

node = node.child[bit]
return max_xor

def find_maximum_xor(self, nums: list[int]) -> int:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there is no test file in this pull request nor any test function or class in the file bit_manipulation/max_xor_bit_trie.py, please provide doctest for the function find_maximum_xor

@algorithms-keeper algorithms-keeper bot added the awaiting reviews This PR is ready to be reviewed label Oct 3, 2025
@algorithms-keeper algorithms-keeper bot added the tests are failing Do not merge until tests pass label Oct 3, 2025
@algorithms-keeper algorithms-keeper bot removed the require tests Tests [doctest/unittest/pytest] are required label Oct 3, 2025
@algorithms-keeper algorithms-keeper bot removed the tests are failing Do not merge until tests pass label Oct 3, 2025
@DataWorshipper
Copy link
Author

Hello i am facing issues in the pre-commit check ,can anyone help me

@algorithms-keeper algorithms-keeper bot added tests are failing Do not merge until tests pass and removed tests are failing Do not merge until tests pass labels Oct 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting reviews This PR is ready to be reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant