【LeetCode】-- 136.只出现一次的数字

简介: 【LeetCode】-- 136.只出现一次的数字

1.题目

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素

要求:不使用额外空间来实现

2.示例

示例 1:

输入: [2,2,1]

输出: 1


示例 2:

输入: [4,1,2,1,2]

输出: 4

3.分析

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。那么当数组中的所有元素都一起异或,那么出现两次的元素都被异或成了0,最后的结果就是只出现一次的元素

4.C++代码

1. class Solution {
2. public:
3. int singleNumber(vector<int>& nums) {
4. int val = 0;
5. 
6. //遍历数组
7. for(auto e:nums)
8.         {
9.             val ^= e;//所有元素全都异或,把相同的元素异或为0,过滤掉,剩下的就是只出现一次的元素
10.         }
11. 
12. return val;
13.     }
14. };


相关文章
|
1月前
|
算法
leetcode-136:只出现一次的数字
leetcode-136:只出现一次的数字
22 0
【力扣每日一题】1365. 有多少小于当前数字的数字
【力扣每日一题】1365. 有多少小于当前数字的数字
|
1月前
|
算法
【力扣】136. 只出现一次的数字
【力扣】136. 只出现一次的数字
|
1月前
leetcode:476. 数字的补数
leetcode:476. 数字的补数
89 0
|
1月前
|
算法
leetcode-260:只出现一次的数字 III
leetcode-260:只出现一次的数字 III
24 0
|
算法 Java C语言
leetcode之只出现一次的数字
今天为大家分享的是关于在数组中找到只出现一次数字的系列题目,我将使用c跟Java来实现,希望我的分享能够帮助到大家。
|
存储
剑指offer 63. 和为S的两个数字
剑指offer 63. 和为S的两个数字
59 0
|
机器学习/深度学习 算法
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
|
Python
LeetCode 1323. 6 和 9 组成的最大数字
给你一个仅由数字 6 和 9 组成的正整数 num。
82 0
|
Python
LeetCode 476. 数字的补数
给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。
77 0