异或运算.

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

插入排序

对数器

相关推荐
九皇叔叔3 分钟前
001-SpringSecurity-Demo 创建项目
java·springboot·springsecurity
松小白song9 分钟前
PID详解+Matlab实现
开发语言·数据结构·matlab
不会kao代码的小王12 分钟前
Linux 下 Tomcat 结合内网穿透 实现 Web 应用公网访问
java
B1acktion14 分钟前
2.3.插入排序——像打牌一样整理数组,为什么它对“几乎有序”数据特别友好?
数据结构·算法·排序算法
ooseabiscuit16 分钟前
springboot下使用druid-spring-boot-starter
java·spring boot·后端
ComputerInBook22 分钟前
OpenCV 基本数据结构
数据结构·opencv
青衫码上行22 分钟前
【从零开始学习JVM】内存模型+堆栈的区别
java·jvm·学习·面试
迈巴赫车主23 分钟前
蓝桥杯 19717 挖矿java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
yaaakaaang24 分钟前
四、建造者模式
java·建造者模式
Sag_ever24 分钟前
Java String 类详解:字符串常用方法 + 不可变性 一网打尽
java·开发语言