Medium
Given an integer array nums
where every element appears three times except for one, which appears exactly once. Find the single element and return it.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,3,2]
Output: 3
Example 2:
Input: nums = [0,1,0,1,0,1,99]
Output: 99
Constraints:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums
appears exactly three times except for one element which appears once.class Solution {
fun singleNumber(nums: IntArray): Int {
var ones = 0
var twos = 0
for (num in nums) {
ones = ones xor num and twos.inv()
twos = twos xor num and ones.inv()
}
return ones
}
}