136. Single Number
题目描述和难度
- 题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1] 输出: 1
示例 2:
输入: [4,1,2,1,2] 输出: 4
- 题目难度:简单。
- 英文网址:136. Single Number 。
- 中文网址:136. 只出现一次的数字 。
思路分析
求解关键:使用位运算当中的异或运算就可以轻松解决这个问题,当然我也是看了别人的解答才知道的。位运算有的时候真的很酷!
参考解答
参考解答1
public class Solution {
public int singleNumber(int[] nums) {
int len = nums.length;
if (len == 0) {
throw new RuntimeException("数组元素为空,没有只出现一次的数字");
}
int res = nums[0];
for (int i = 1; i < len; i++) {
res ^= nums[i];
}
return res;
}
}
本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0136-single-number ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com 。