在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:
输入:nums = [3,4,3,3]
输出:4
示例 2:
输入:nums = [9,1,7,9,7,9,7]
输出:1
限制:
1 <= nums.length <= 10000
1 <= nums[i] < 2^31
class Solution: def singleNumber(self, nums: List[int]) -> int: n=len(nums) if n==1:return nums[0] nums.sort() for i in range(n-1): if i==0: if nums[i+1]!=nums[i]: return nums[i] elif i==n-2: if nums[i]!=nums[i+1]: return nums[i+1] elif nums[i]!=nums[i-1] and nums[i]!=nums[i+1]: return nums[i]
class Solution: def singleNumber(self, nums: List[int]) -> int: return (sum(set(nums))*3-sum(nums))//2
class Solution { public int singleNumber(int[] nums) { int[] cnt=new int[32]; for(int i=0;i<nums.length;i++){ for(int j=0;j<32;j++){ cnt[j]+=(nums[i]>>j&1)==1?1:0; } } int res=0; for(int i=31;i>=0;i--){ res<<=1; if(cnt[i]%3==1)res=(res|1); } return res; } }