JAVA练习323- 只出现一次的数字

JAVA练习323- 只出现一次的数字 题目概览给你一个非空整数数组nums除了某个元素只出现一次以外其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题且该算法只使用常量额外空间。示例 1 输入nums [2,2,1]输出1示例 2 输入nums [4,1,2,1,2]输出4示例 3 输入nums [1]输出1提示1 nums.length 3 * 10^4-3 * 10^4 nums[i] 3 * 10^4除了某个元素只出现一次以外其余每个元素均出现两次。来源136. 只出现一次的数字 - 力扣LeetCode解题分析方法位运算异或 是 相同为 0不同为 1因此当两个相同数做异或运算时会返回 0一个数和 0 做异或运算时会返回 该数 本身。因此只需要将数组中所有元素一起做异或运算得到的值一定是只出现一次的那个数。时间复杂度O(n)空间复杂度O(1)class Solution { public int singleNumber(int[] nums) { int res 0; for (int num: nums) { res ^ num; } return res; } }