LeetCode/kt/sum-of-all-subset-xor-totals.kt

19 lines
396 B
Kotlin
Raw Normal View History

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)
}