LeetCode 136. 只出现一次的数字【c++/java详细题解】_169. 多数元素c++_林小鹿@的博客-程序员秘密

技术标签: LeetCode题解  数据结构与算法  力扣高频面试题  位运算  

1、题目

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

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

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

示例 2:

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

2、思路

(位运算) O ( n ) O(n) O(n)

异或运算有以下三个性质:

  • 1、0^0 = 00^1 = 10异或任何数=任何数
  • 2、1^0 = 11^1 = 01异或任何数 = 任何数取反
  • 3、任何数异或自己=把自己置0,即 a^a=0

因此这道题可以用位运算来做,过程如下:

  • 1、两个相同的元素经过异或之后会变为0
  • 2、将数组所有元素异或在一起即可得到出现 1 次的元素值。

时间复杂度分析: O ( n ) O(n) O(n),其中 n n n 是数组长度。

3、c++代码

class Solution {
    
public:
    int singleNumber(vector<int>& nums) {
    
        int res = 0;
        for(int i = 0; i < nums.size(); i++) res ^= nums[i];
        return res;
    }
};

4、java代码

class Solution {
    
    public int singleNumber(int[] nums) {
    
        int res = 0;
        for(int i = 0;i < nums.length;i ++) res ^= nums[i];
        return res;
    }
}

原题链接:136. 只出现一次的数字

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45629285/article/details/119598167

智能推荐

python 列表排序方法sort、sorted技巧篇_张博208的博客-程序员秘密

Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。1)排序基础简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序。&amp;gt;&amp;gt;&amp;gt; sorted([5, 2, 3, 1, 4])[1, 2, 3, 4, 5]你也可以...

word2vec中CBOW和Skip-Gram训练模型的原理_dxlcnm的博客-程序员秘密

转载于CBOW模型和Skip-Gram模型前言word2vec如何将corpus(语料库)的one-hot向量(模型的输入)转换成低维词向量(模型的中间产物,更具体来说是输入权重矩阵),真真切切感受到向量的变化,暂不涉及加速算法。CBOW模型根据中心词W(t)周围的词来预测中心词:Skip-gram模型则根据中心词W(t)来预测周围词:CBOW模型的理解假设我们现在的Corpus是这一个简单的只有...

Win10客户端 ssh 远程连接 win server 2008 R2服务器_remote ssh 2008_mingyong.g的博客-程序员秘密

Win10客户端 ssh 远程连接 win server 2008 R2服务器写在前面如题,本文介绍的是在Win10客户端 和 win server 2008 R2服务器 之间建立 ssh 连接。网上很多关于ssh介绍的教程文章,但是都没有讲清楚基本环境,导致读者看完后找不到头脑。再多说一句,服务器是阿里云的服务器,操作系统是Windows Server 2008 R2 企业版64位中文版。开始配置win10 客户端win 10 系统已经内置了open SSH 客户端和服务端,因此在win 10

C语言之数组的使用,C语言之数组的使用_小麦的天空的博客-程序员秘密

要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int类型的内存空间:定义数组 inta[length];数组名叫a。这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如inta[4];就定义了一个长度为4的整型数组,名字是a。数组中的每个元素都有一个序号,这个序号从0开始,而不是...

随便推点

2019腾讯广告算法大赛题目理解与数据探索(含代码)_2019腾讯广告算法比赛 慌呀哩_J-JunLiang的博客-程序员秘密

2019腾讯广告算法大赛题目理解与数据探索1.题目介绍1.1 背景介绍广告曝光预估的目的是在广告主创建新广告和修改广告设置时,为广告主提供 未来的广告曝光效果参考。通过这个预估参考,广告主能避免盲目的优化尝试,有效缩短广 告的优化周期,降低试错成本,使广告效果尽快达到广告主的预期范围。比赛中使用的数据 经过脱敏处理,通过本次大赛,我们旨在挑选出更为优秀的曝光预估算法以及遴选出杰出的 社交广告...

VS调试状态下查看QString等QT变量_vs2015查看qt4的变量_阿莫西林夹馍的博客-程序员秘密

VS调试Qt程序,会发现无法查看QString等Qt内置类型的值,可以修改autoexp.dat文件,使Qt内置类型的值也可以查看。C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\autoexp.dat,在VS2015,QT-Plugin2.4.3下亲测可以,其它版本可以对照下面修改。别忘记先备份一下,然后搜索[AutoExpand],添加;QT_DEBUG_START (Qt5 .

一个实用并且确实的内核补丁--关于桥接nat的_dog250的博客-程序员秘密

<br />[email protected]<br />[email protected]<br />...相关的收件人邮箱<br /><br />Hi,everyone<br /><br />As we know,the NAT netfilter-hook for IP hooking at OUTPUT is called after routing,so we must rerouting if the destinaton or source ad

Oracle中错误代码ORA-02292 违反了完整性约束条件解决_李白列夫斯泰的博客-程序员秘密

这种原因是主键与其他表关联了,解决方法如下:1、禁用约束alter table T_HRM_USER_INFO disable constraint PK_T_HRM_USER_INFO CASCADEPK_T_HRM_USER_INFO   这个去表中找,plqsl右键表选择view--&amp;gt;key,这里注意Name是约束名,Columns是表的字段名。一定要注意con...

如何用python“优雅的”调用有道翻译_Big sai的博客-程序员秘密

文章目录前言分析分析url分析参数01分析参数02加密分析模拟请求注意点请求代码执行结果结语前言其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js“斗争”的过程!当然,本文仅供交流学习使用,适合自己做一些小东西娱乐,禁止用于商业用途!转载请注明微信公众号:bigsai。项目gi...

安卓设备门禁识别开发_Android人脸识别活体检测开发入门--基于虹软免费SDK实现..._weixin_39528559的博客-程序员秘密

引言人工智能早已不是什么新鲜的事物,人脸识别是当前比较热门的技术,在国内也越来越多的运用,例如刷脸打卡,刷脸APP,身份识别,人脸门禁等。人脸识别技术为我们的生活带来了一些便利,但是也存在很明显的缺陷,那就是活体的问题。想象一下如果人脸门禁普及到家庭中,如果一个人拿着你的照片就能进入你的房间,那门禁岂不是形同虚设,因此活体检测是一个必不可少的部分。那么如何在Android平台上实现活体检测这一功能...

推荐文章

热门文章

相关标签