异或的性质:
(1)交换律:a ^ b ^ c <=> a ^ c ^ b
(2)任何数与0异或 0 ^ n = n
(3)相同的数异或为0 n ^ n => 0 因此根据以上三条定律,用0与数组中所有元素分别异或,最后会得到没有相同的那个数。
(引用源)
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例:输入[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;
}
};
未完待续…
一种简单的任务调度器的实现背景有别于“裸奔”的程序,类似于FreeRTOS或者Uc/OS II之类的实时系统都必备一个强大的任务调度器,基于此用户可以实现各种“乱七八糟”或者“吩咐多彩”的功能。而“裸奔”的用户似乎与只能在main函数中,或者中断函数中苦苦挣扎求生存。当项目小的时候,我相信程序员有能力能够hold住。一旦项目变得复杂或者成熟后,有时候一点点需求的变动都会让整个项目都变得伤痕累累...
公司一个项目需要使用Oracle数据库,平时mysql用习惯了,这一换还有点蒙。公司网络不好,需要在本地搭一个Oracle服务,选择了11g xe,主要是小。过程:1、下载并安装完数据库后用sys登陆2、创建一个sumengnan用户,赋予了一些创建表、连接的权限3、在sumengnan模式下导入公司Oracle的sql文件时报错,提示表空间不存在解决办法:creat...
开发者必须清醒地认识到,重新启动并不是解决所有问题的方法。作者 |Mikel译者 | 王艳妮,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译文:当我...
某班有不超过200名的学生,从文件中输入某班学生成绩,对输入成绩按由高到低进行排序,并输出到另一个文件中。
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.
读完赵军主编的《知识图谱》第六章和第七章,对关系抽取和事件抽取简单做一下笔记。关系抽取定义:自动识别实体之间具有的某种语义关系。根据参与实体的多少可以分为二元关系抽取(两个实体)和多元关系抽取(三个及以上实体)。通过关注两个实体间的语义关系,可以得到(arg1, relation, arg2)三元组,其中arg1和arg2表示两个实体,relation表示实...
Latex 中插入pdf版本不匹配问题在Latex中插入PDF图片有时候会遇到PDF版本不匹配问题。编译器报错:PDF inclusion: found PDF version <1.7>, but at most version <1.5> allowed解决方法也比较简单:在文件开头加入一行:\pdfoptionpdfminorversion = 7 % 7表示你的PDF版本问题基本解决,PDF图片可以显示了。但是我多次尝试后发现,有时候图片的排版出现混乱,这种
程序运行效果图:
Redhat 9.0发布说明 2022 年 5 月 18 日,IBM 收购的红帽公司宣布推出红帽企业 Linux 9 (RHEL 9),这是世界领先的企业 Linux 平台的最新版本。RHEL 9 为支持混合云创新提供了更灵活、更稳定的基础,并为跨物理、虚拟、私有和公共云和边缘部署部署应用程序和关键工作负载提供了更快、更一致的体验。新增内容 RHEL 9 包括功能和增强功能,可通过使用通用、灵活的基础来支持创新并加快上市时间,从而帮助实现 IT 的长期成功。主要特点和优势1
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)之间含义说明1.GT/s即Giga Transmission per second (千兆传输/秒),每一秒内传输的次数。重点在于描述物理层通信协议的速率。也就等于一秒钟完成了多少次数据< n bit>传输。GT/s着重描述端口的速率属性,可以不和链路宽度等关联,这样来描述“可以进行链路宽度扩展”的高速串行接口更为合适一些。 需要结合具体的物理层通信协议来分析。举例说明:6.4GT/S的QPI总线,QPI数据包是80 bit的长度,其中64bit用于数据,发送