Partition Array to Minimize XOR - Problem

You are given an integer array nums and an integer k. Your task is to partition nums into k non-empty subarrays.

For each subarray, compute the bitwise XOR of all its elements. Return the minimum possible value of the maximum XOR among these k subarrays.

A subarray is a contiguous part of an array.

Input & Output

Example 1 — Basic Case
$ Input: nums = [1,2,3,4], k = 2
Output: 4
💡 Note: Optimal partition: [1,2,3] with XOR = 0, and [4] with XOR = 4. Maximum XOR = max(0,4) = 4.
Example 2 — Single Elements
$ Input: nums = [5,6,7], k = 3
Output: 7
💡 Note: Each element forms its own partition: [5], [6], [7]. Maximum XOR = max(5,6,7) = 7.
Example 3 — All Together
$ Input: nums = [1,1,1,1], k = 1
Output: 0
💡 Note: All elements in one partition: [1,1,1,1]. XOR = 1⊕1⊕1⊕1 = 0.

Constraints

  • 1 ≤ nums.length ≤ 103
  • 1 ≤ nums[i] ≤ 106
  • 1 ≤ k ≤ nums.length

Visualization

Tap to expand
Partition Array to Minimize Maximum XORInput: nums=[1,2,3,4], k=21234Partition HerePartition 1: [1,2,3]XOR = 1⊕2⊕3 = 0Part 2: [4]XOR = 4Maximum XOR = max(0, 4) = 4
Understanding the Visualization
1
Input
Array [1,2,3,4] with k=2 partitions needed
2
Process
Try different ways to partition and compute XOR for each part
3
Output
Return minimum possible maximum XOR value: 4
Key Takeaway
🎯 Key Insight: Binary search on the answer space (maximum XOR values) with greedy feasibility checking
Asked in
Google 15 Microsoft 12 Amazon 8
8.5K Views
Medium Frequency
~35 min Avg. Time
234 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen