异或运算.

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

插入排序

对数器

相关推荐
Z***25804 分钟前
Java计算机视觉
java·开发语言·计算机视觉
一点事12 分钟前
ruoyi:集成mybatisplus实现mybatis增强
java·开发语言·mybatis
e***877013 分钟前
Tomcat Request Cookie 丢失问题
java·tomcat·firefox
hweiyu0014 分钟前
数据结构:数组
数据结构·算法
linksinke19 分钟前
Mapstruct引发的 Caused by: java.lang.NumberFormatException: For input string: ““
java·开发语言·exception·mapstruct·numberformat·不能为空
无限进步_25 分钟前
C语言单向链表实现详解:从基础操作到完整测试
c语言·开发语言·数据结构·c++·算法·链表·visual studio
初夏睡觉26 分钟前
循环比赛日程表 题解
数据结构·c++·算法
likuolei39 分钟前
Eclipse 代码模板
java·ide·eclipse
好好研究1 小时前
SpringMVC框架 - 异常处理
java·开发语言·spring·mvc
只会写代码1 小时前
JDK8 Lambda 加持:打造优雅通用的对象构建器
java