Sum of All Subset XOR Totals - Problem

The XOR total of an array is defined as the bitwise XOR of all its elements, or 0 if the array is empty.

For example, the XOR total of the array [2,5,6] is 2 XOR 5 XOR 6 = 1.

Given an array nums, return the sum of all XOR totals for every subset of nums.

Note: Subsets with the same elements should be counted multiple times.

An array a is a subset of an array b if a can be obtained from b by deleting some (possibly zero) elements of b.

Input & Output

Example 1 — Basic Case
$ Input: nums = [1,3]
Output: 6
💡 Note: Subsets: [] (XOR=0), [1] (XOR=1), [3] (XOR=3), [1,3] (XOR=1⊕3=2). Sum: 0+1+3+2 = 6
Example 2 — Three Elements
$ Input: nums = [5,1,6]
Output: 28
💡 Note: 8 subsets: [] (0), [5] (5), [1] (1), [6] (6), [5,1] (4), [5,6] (3), [1,6] (7), [5,1,6] (2). Sum: 0+5+1+6+4+3+7+2 = 28
Example 3 — Single Element
$ Input: nums = [3]
Output: 3
💡 Note: Only 2 subsets: [] (XOR=0) and [3] (XOR=3). Sum: 0+3 = 3

Constraints

  • 1 ≤ nums.length ≤ 12
  • 1 ≤ nums[i] ≤ 20

Visualization

Tap to expand
Sum of All Subset XOR Totals INPUT Array: nums 1 idx 0 3 idx 1 All Subsets: {} {1} {3} {1,3} Input Values nums = [1, 3] n = 2, subsets = 4 ALGORITHM STEPS 1 Calculate XOR Totals XOR each subset's elements {} --> XOR = 0 {1} --> XOR = 1 {3} --> XOR = 3 {1,3} --> 1 XOR 3 = 2 (binary: 01 XOR 11 = 10) 2 Sum All XOR Values Add all XOR totals together 3 Optimal: Bit Contribution Each bit appears in 2^(n-1) 4 Formula Result = (OR all nums) * 2^(n-1) (1 OR 3) * 2^(2-1) = 3 * 2 = 6 FINAL RESULT XOR Totals by Subset: {} 0 {1} 1 {3} 3 {1,3} 2 0 + 1 + 3 + 2 Output: 6 OK - Sum verified! Time: O(2^n) or O(n) Key Insight: Each element appears in exactly half (2^(n-1)) of all subsets. The optimal O(n) solution uses the fact that the sum of XOR totals equals (OR of all elements) multiplied by 2^(n-1). For [1,3]: (1|3) * 2^1 = 3 * 2 = 6 This avoids generating all 2^n subsets, making it extremely efficient for large arrays. TutorialsPoint - Sum of All Subset XOR Totals | Optimal Solution
Asked in
Amazon 15 Microsoft 10
25.0K Views
Medium Frequency
~15 min Avg. Time
890 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