DEV Community

Cover image for 1863. Sum of All Subset XOR Totals
MD ARIFUL HAQUE
MD ARIFUL HAQUE

Posted on • Edited on

1863. Sum of All Subset XOR Totals

1863. Sum of All Subset XOR Totals

Easy

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.

Example 1:

  • Input: nums = [1,3]
  • Output: 28
  • Explanation: The 4 subsets of [1,3] are:
    • The empty subset has an XOR total of 0.
    • [1] has an XOR total of 1.
    • [3] has an XOR total of 3.
    • [1,3] has an XOR total of 1 XOR 3 = 2.

0 + 1 + 3 + 2 = 6

Example 2:

  • Input:nums = [5,1,6]
  • Output: 28
  • Explanation: The 8 subsets of [5,1,6] are:
    • The empty subset has an XOR total of 0.
    • [5] has an XOR total of 5.
    • [1] has an XOR total of 1.
    • [6] has an XOR total of 6.
    • [5,1] has an XOR total of 5 XOR 1 = 4.
    • [5,6] has an XOR total of 5 XOR 6 = 3.
    • [1,6] has an XOR total of 1 XOR 6 = 7.
    • [5,1,6] has an XOR total of 5 XOR 1 XOR 6 = 2.

0 + 5 + 1 + 6 + 4 + 3 + 7 + 2 = 28

Example 3:

  • Input: nums = [3,4,5,6,7,8]
  • Output: 480
  • Explanation: The sum of all XOR totals for every subset is 480.

Constraints:

  • 1 <= nums.length <= 12
  • 1 <= nums[i] <= 20

Solution:

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function subsetXORSum($nums) {
        return array_reduce($nums, function($carry, $item) {
            return $carry | $item;
        }) << (count($nums) - 1);
    }
}
Enter fullscreen mode Exit fullscreen mode

Contact Links

If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!

Billboard image

Monitoring as code

With Checkly, you can use Playwright tests and Javascript to monitor end-to-end scenarios in your NextJS, Astro, Remix, or other application.

Get started now!

Top comments (0)

Image of AssemblyAI

Automatic Speech Recognition with AssemblyAI

Experience near-human accuracy, low-latency performance, and advanced Speech AI capabilities with AssemblyAI's Speech-to-Text API. Sign up today and get $50 in API credit. No credit card required.

Try the API

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay