异或运算.

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

插入排序

对数器

相关推荐
懒惰蜗牛几秒前
Day63 | Java IO之NIO三件套--选择器(下)
java·nio·选择器·selector·半包粘包·tcp缓冲区
JavaGuide7 分钟前
美团2026届后端一二面(附详细参考答案)
java·后端
打工人你好9 分钟前
如何设计更安全的 VIP 权限体系
java·jvm·安全
L.EscaRC17 分钟前
Spring IOC核心原理与运用
java·spring·ioc
摇滚侠30 分钟前
2025最新 SpringCloud 教程,Nacos-总结,笔记19
java·笔记·spring cloud
在逃热干面33 分钟前
(笔记)获取终端输出保存到文件
java·笔记·spring
爱笑的眼睛1134 分钟前
深入理解MongoDB PyMongo API:从基础到高级实战
java·人工智能·python·ai
笃行客从不躺平44 分钟前
遇到大SQL怎么处理
java·开发语言·数据库·sql
q***87601 小时前
Spring Boot 整合 Keycloak
java·spring boot·后端
Billow_lamb1 小时前
Spring Boot2.x.x全局拦截器
java·spring boot·后端