LeetCode in Kotlin

3702. Longest Subsequence With Non-Zero Bitwise XOR

Medium

You are given an integer array nums.

Return the length of the longest subsequence in nums whose bitwise XOR is non-zero. If no such subsequence exists, return 0.

Example 1:

Input: nums = [1,2,3]

Output: 2

Explanation:

One longest subsequence is [2, 3]. The bitwise XOR is computed as 2 XOR 3 = 1, which is non-zero.

Example 2:

Input: nums = [2,3,4]

Output: 3

Explanation:

The longest subsequence is [2, 3, 4]. The bitwise XOR is computed as 2 XOR 3 XOR 4 = 5, which is non-zero.

Constraints:

Solution

class Solution {
    fun longestSubsequence(nums: IntArray): Int {
        var xorSum = 0
        var allZero = true
        for (num in nums) {
            xorSum = xorSum xor num
            if (num != 0) {
                allZero = false
            }
        }
        if (allZero) {
            return 0
        }
        return if (xorSum != 0) nums.size else nums.size - 1
    }
}