From 928354c3705bad40caeff0e9481f72f0920d5e9c Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Mon, 20 May 2024 15:47:02 +0200 Subject: [PATCH] =?UTF-8?q?kt:=20add=20=C2=AB1863.=20Sum=20of=20All=20Subs?= =?UTF-8?q?et=20XOR=20Totals=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- kt/sum-of-all-subset-xor-totals.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 kt/sum-of-all-subset-xor-totals.kt diff --git a/kt/sum-of-all-subset-xor-totals.kt b/kt/sum-of-all-subset-xor-totals.kt new file mode 100644 index 0000000..1a51ffd --- /dev/null +++ b/kt/sum-of-all-subset-xor-totals.kt @@ -0,0 +1,18 @@ +class Solution { + private fun xorSum( + nums: IntArray, + i: Int, + sum: Int, + ): Int { + if (i == nums.size) { + return sum + } + + val including = xorSum(nums, i + 1, sum xor nums[i]) + val excluding = xorSum(nums, i + 1, sum) + + return including + excluding + } + + fun subsetXORSum(nums: IntArray): Int = xorSum(nums, 0, 0) +}