博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
136.只出现一次的数
阅读量:3906 次
发布时间:2019-05-23

本文共 651 字,大约阅读时间需要 2 分钟。

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

说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4

异或运算 \oplus⊕。异或运算有以下三个性质。

任何数和 00 做异或运算,结果仍然是原来的数,即 a \oplus 0=aa⊕0=a。
任何数和其自身做异或运算,结果是 00,即 a \oplus a=0a⊕a=0。
异或运算满足交换律和结合律,即 a \oplus b \oplus a=b \oplus a \oplus a=b \oplus (a \oplus a)=b \oplus0=ba⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

异或-

也就是说,碰到0就是自己,自己碰到自己就是0。
最后留下来的就是单身狗,

代码

class Solution {
public int singleNumber(int[] nums) {
//初始化只出现一次的数 初始为0对运算没有影响。 int single = 0; for (int num : nums) {
single ^= num; // 在循环中找单身狗.... } return single; }}

转载地址:http://hhqen.baihongyu.com/

你可能感兴趣的文章
通配符与正则表达式
查看>>
c++ 与 Java 之 红黑树 哈希表 辨析
查看>>
open GL 、DirectX、open CV、 open Inventor 、cocos2dx、unity3d、3dmax辨析
查看>>
理解矩阵
查看>>
彩虹七色的RGB值
查看>>
常用正则表达式实例
查看>>
web网站架构演变过程
查看>>
c、 c++、 java 基本数据类型 对比辨析
查看>>
自然语言处理(NLP)四步流程:Embed->Encode->Attend->Predict
查看>>
python机器学习包 Windows下 pip安装 scikit-learn numpy scipy
查看>>
[转发]机器学习资源大全
查看>>
《数学之美》知识点详细总结
查看>>
机器学习 数据挖掘 数据集划分 训练集 验证集 测试集
查看>>
从不同角度看机器学习的几种学习方式
查看>>
数据挖掘 NLP 之 文本挖掘 文本处理 通用流程
查看>>
NLP 主题抽取 Topic LDA代码实践 gensim包 代码
查看>>
NLP 工具包 大调查 自然语言处理工具包合集
查看>>
scrapy爬取酒店评论数据
查看>>
各框架下(tensorflow, pytorch, theano, keras)实现几个基础结构神经网络(mlp, autoencoder, CNNs, recurrent, recursive)
查看>>
软考相关英语
查看>>