异或运算.

相同为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、其中有两种数,出现了奇数次,其他的出现了偶数次。

插入排序

对数器

相关推荐
hweiyu002 分钟前
数据结构:有向图
数据结构
呱呱巨基7 分钟前
C++ 红黑树
数据结构·c++·笔记·学习
en-route9 分钟前
Spring 框架下 Redis 会话存储应用实践
java·redis·spring
JIngJaneIL10 分钟前
基于Java酒店管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
颜颜yan_19 分钟前
DevUI自定义开发实践:从零开始构建自定义组件和插件
android·java·数据库
带刺的坐椅24 分钟前
Java 低代码平台的“动态引擎”:Liquor
java·javascript·低代码·groovy·liquor
想用offer打牌29 分钟前
JDK动态代理为什么基于接口而不基于类?
java·后端·面试
听风吟丶31 分钟前
微服务性能压测与容量规划实战:从高并发稳定性到精准资源配置
java·开发语言
愤怒的代码31 分钟前
第 4 篇:HashMap 深度解析(JDK1.7 vs JDK1.8、红黑树、扩容逻辑)(5 题)
java·面试
在黎明的反思37 分钟前
c++20协程
java·前端·c++20