异或运算.

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

插入排序

对数器

相关推荐
PPPPickup几秒前
实习日志5.7
java
_Evan_Yao几秒前
return 的迷途:try-catch-finally 中 return 的诡异顺序与 Spring 事务暗坑
java·后端·spring·mybatis
薛定谔的猫喵喵2 分钟前
Spring Boot Jar包修改配置文件和Class中硬编码IP的完整指南
java·spring boot·反编译·class
辛苦才能4 分钟前
数据结构-排序算法-堆排序(重点比赛面试经常考)
数据结构·面试·排序算法
Seven975 分钟前
Tomcat Request请求处理过程:Connector
java
Mr数据杨6 分钟前
【Codex】搭建教学中心数据工作台统筹教案与课件资源
java·开发语言·django·codex·项目开发
摇滚侠17 分钟前
Java 项目教程《黑马商城》服务治理 11 - 14
java·微服务·架构
一只大袋鼠19 分钟前
Spring 事务管理三种实现方式
java·数据库·spring·声明式事务
TANGLONG22222 分钟前
【C++】STL基础必备:深入解析vector容器的实现(含源码)
c语言·开发语言·数据结构·c++·笔记·算法·stl
郝学胜-神的一滴24 分钟前
高并发秒杀系统设计全解:从需求拆解到Redis库存实战
java·数据库·redis·python·程序人生·缓存·php