前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >找只出现一次的数字

找只出现一次的数字

作者头像
Qt君
发布2020-08-05 14:12:07
6490
发布2020-08-05 14:12:07
举报
文章被收录于专栏:跟Qt君学编程

这是力扣网站的一道题,挺巧妙的,分享给大家。

0x01. 题目

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

0x02. 示例

代码语言:javascript
复制
输入: [2,2,1]
输出: 1
代码语言:javascript
复制
输入: [4,1,2,1,2]
输出: 4

0x03. 答案

  使用异或实现找数组里面只出现一次的数字。

代码语言:javascript
复制
int singleNumber(vector<int>& nums) {
    int single = 0;
    for (int num : nums) {
        single ^= num;
    }
    return single;
}

0x04. 关于异或

  • 满足交换律,如:
代码语言:javascript
复制
a ^ c ^ b 
<=> 
a ^ b ^ c
  • 任何数与0异或得任何数,如:
代码语言:javascript
复制
0 ^ n => n
  • 相同的数异或为0,如:
代码语言:javascript
复制
n ^ n => 0
  • 最后数组[4,1,2,1,2]异或分解:
代码语言:javascript
复制
4 ^ 1 ^ 2 ^ 1 ^ 2
=>
4 ^ 1 ^ 1 ^ 2 ^ 2
=>
4 ^ 0 ^ 0
=>
4

0x05. 关于更多

  题目出处:

代码语言:javascript
复制
https://leetcode-cn.com/problems/single-number/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01. 题目
  • 0x02. 示例
  • 0x03. 答案
  • 0x04. 关于异或
  • 0x05. 关于更多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档