异或运算.

相同为0,不同为1。

java 复制代码
1 ^ 1=0
0 ^ 0=0
1 ^ 0=1
0 ^ 1=1

性质:

  1. 0 ^ N = N N ^ N = 0
  2. 交换、结合
    a ^ b = b ^ a;
    (a ^ b) ^ c = a ^ (b ^ c);
    因此异或全部的元素的结果就是那个只出现1次的元素。

实现两个值的交换,而不必使用临时变量(值可以相等,但前提是他两指向的内存是两块东西)。

例如交换两个整数a = 甲;b = 乙;的值,可通过下列语句实现:

java 复制代码
 a = 甲;
 b = 乙;
 a = a^b;   || a =  甲 ^ 乙
 b = a^b;   || b = (甲 ^ 乙) ^ 乙 = 甲
 a = a^b;   || a = (甲 ^ 乙) ^ 甲 = 乙

例题:

有一个数组

1、其中有一种数,出现了奇数次,其他的出现了偶数次;

解法:直接异或所有数。

2、其中有两种数,出现了奇数次,其他的出现了偶数次。

插入排序

对数器

相关推荐
布朗克1681 分钟前
38 Spring Boot入门——自动配置、核心注解与Starter机制
java·spring boot·后端
LuminousCPP7 分钟前
数据结构 - 单链表第一篇:单链表基础操作
c语言·数据结构·经验分享·笔记·学习
沪漂阿龙9 分钟前
LangChain 系列:Structured Output结构化输出与源码解析
java·人工智能·架构·langchain
半夜燃烧的香烟13 分钟前
springboot3.0 集成minio上传文件,支持多个桶名
java·开发语言·spring boot
WL学习笔记13 分钟前
通讯录(顺序表实现)
c语言·数据结构·算法
JieE21224 分钟前
树与二叉树--JS实例
javascript·数据结构
J2虾虾24 分钟前
Android支持Java语言的标准
android·java·开发语言
To_OC26 分钟前
搞懂二叉树递归遍历,我居然是从爬楼梯开始的
前端·javascript·数据结构
Oo_行者_oO34 分钟前
Spring Schedule + ShedLock + RabbitMQ 生产级落地方案 - 云楼(中国)
java·后端