异或---太强了_0异或0_feng神的博客-程序员秘密

技术标签: 刷题!刷题!刷题!  异或  

异或

异或的性质:
(1)交换律:a ^ b ^ c <=> a ^ c ^ b
(2)任何数与0异或 0 ^ n = n
(3)相同的数异或为0 n ^ n => 0 因此根据以上三条定律,用0与数组中所有元素分别异或,最后会得到没有相同的那个数。
(引用源)

  • 例题1:leetcode第136题

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例:输入[4,1,2,1,2],输出 4

解法一:异或解(太简洁了):

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res=0;
        for(int e:nums){
            res^=e;
        }
        return res;
    }
};

解法二:哈希集(常规操作~~~)

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        unordered_set<int> bobo;
        int ans;
        for(auto i : nums){
            if(bobo.count(i))   bobo.erase(i);
            else    bobo.insert(i);
        }
        for(auto j : bobo)  ans = j;
        return ans;
    }
};

(引用源)

未完待续…

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

智能推荐

ARM设计:简化版任务调度器的实现和应用(1)_arm npu task schedule_禾刀围玉的博客-程序员秘密

一种简单的任务调度器的实现背景有别于“裸奔”的程序,类似于FreeRTOS或者Uc/OS II之类的实时系统都必备一个强大的任务调度器,基于此用户可以实现各种“乱七八糟”或者“吩咐多彩”的功能。而“裸奔”的用户似乎与只能在main函数中,或者中断函数中苦苦挣扎求生存。当项目小的时候,我相信程序员有能力能够hold住。一旦项目变得复杂或者成熟后,有时候一点点需求的变动都会让整个项目都变得伤痕累累...

记一次Oracle 11g xe 导出导入使用过程_导入 imp文件 connection as sys should be as sysdba or _现实、太残忍的博客-程序员秘密

公司一个项目需要使用Oracle数据库,平时mysql用习惯了,这一换还有点蒙。公司网络不好,需要在本地搭一个Oracle服务,选择了11g xe,主要是小。过程:1、下载并安装完数据库后用sys登陆2、创建一个sumengnan用户,赋予了一些创建表、连接的权限3、在sumengnan模式下导入公司Oracle的sql文件时报错,提示表空间不存在解决办法:creat...

@程序员,计算机重启包治百“病”?_CSDN资讯的博客-程序员秘密

开发者必须清醒地认识到,重新启动并不是解决所有问题的方法。作者 |Mikel译者 | 王艳妮,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译文:当我...

学生成绩排序_学生成绩排序csdn_不死鸟JGC的博客-程序员秘密

某班有不超过200名的学生,从文件中输入某班学生成绩,对输入成绩按由高到低进行排序,并输出到另一个文件中。

innodb_flush_log_at_trx_commit和sync_binlog参数详解_thundermeng的博客-程序员秘密

innodb_flush_log_at_trx_commit和sync_binlog是MySQL innodb引擎的两个重要的参数,其中innodb_flush_log_at_trx_commit是将事务日志从innodb log buffer写入到redo log中,sync_binlog是将二进制日志文件刷新到磁盘上。innodb事务日志redo,binlog逻辑过程如下:1.

读书笔记:关系抽取和事件抽取_dazha4426的博客-程序员秘密

读完赵军主编的《知识图谱》第六章和第七章,对关系抽取和事件抽取简单做一下笔记。关系抽取定义:自动识别实体之间具有的某种语义关系。根据参与实体的多少可以分为二元关系抽取(两个实体)和多元关系抽取(三个及以上实体)。通过关注两个实体间的语义关系,可以得到(arg1, relation, arg2)三元组,其中arg1和arg2表示两个实体,relation表示实...

随便推点

Latex 中插入pdf版本不匹配问题_pdflatex配置不恰当_肖哥威武的博客-程序员秘密

Latex 中插入pdf版本不匹配问题在Latex中插入PDF图片有时候会遇到PDF版本不匹配问题。编译器报错:PDF inclusion: found PDF version &lt;1.7&gt;, but at most version &lt;1.5&gt; allowed解决方法也比较简单:在文件开头加入一行:\pdfoptionpdfminorversion = 7 % 7表示你的PDF版本问题基本解决,PDF图片可以显示了。但是我多次尝试后发现,有时候图片的排版出现混乱,这种

【Linux】Redhat 9.0本地虚拟机安装测试_redhat9.0_cnskylee的博客-程序员秘密

Redhat 9.0发布说明 2022 年 5 月 18 日,IBM 收购的红帽公司宣布推出红帽企业 Linux 9 (RHEL 9),这是世界领先的企业 Linux 平台的最新版本。RHEL 9 为支持混合云创新提供了更灵活、更稳定的基础,并为跨物理、虚拟、私有和公共云和边缘部署部署应用程序和关键工作负载提供了更快、更一致的体验。新增内容 RHEL 9 包括功能和增强功能,可通过使用通用、灵活的基础来支持创新并加快上市时间,从而帮助实现 IT 的长期成功。主要特点和优势1

WINSOCK.H WINSOCK2.H的区别及函数重复定义的解决方法_winsock版本及区别联系_kmcfly的博客-程序员秘密

1. 版本区别winsock2.h 版本2.0winsock.h 版本1.1说白了就是winsock2.h是winsock.h的升级版,用来替换winsock.h2. 重复定义因为是两个不同的版本,因此有非常多相同的定义解决方法:1)windows.h在winsock2.h的前面**该办法影响其他库文件#define WIN32_LE

数据迁移方案_星夜孤帆的博客-程序员秘密

双写迁移简单来说,就是在线上系统里面,之前所有写库的地方,增删改操作,除了对老库增删改,都加上对新库的增删改,这就是所谓的双写,同时写俩库,老库和新库。  然后系统部署之后,新库数据差太远,用之前说的导数工具,跑起来读老库数据写新库,写的时候要根据 gmt_modified 这类字段判断这条数据最后修改的时间,除非是读出来的数据在新库里没有,或者是比新库的数据新才会写。简单来说,就是不允许用老数据覆盖新数据。  导完一轮之后,有可能数据还是存在不一致,那么就程序自动做一轮校验,比对新老库每个.

GT/s和GB/s(Gbps)之间含义说明_gauiyatou的博客-程序员秘密

GT/s和GB/s(Gbps)之间含义说明1.GT/s即Giga Transmission per second (千兆传输/秒),每一秒内传输的次数。重点在于描述物理层通信协议的速率。也就等于一秒钟完成了多少次数据&lt; n bit&gt;传输。GT/s着重描述端口的速率属性,可以不和链路宽度等关联,这样来描述“可以进行链路宽度扩展”的高速串行接口更为合适一些。 需要结合具体的物理层通信协议来分析。举例说明:6.4GT/S的QPI总线,QPI数据包是80 bit的长度,其中64bit用于数据,发送

推荐文章

热门文章

相关标签