异或运算.

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

插入排序

对数器

相关推荐
是宇写的啊14 小时前
SpringBoot 统一功能处理
java·spring boot·后端
等....14 小时前
Spring Boot多模块项目部署
java·spring boot·后端
2401_8401052014 小时前
题解: [GESP202409 八级] 美丽路径
数据结构·c++·算法·动态规划
今儿敲了吗14 小时前
链表篇(五)——链表中间结点
数据结构·笔记·算法·链表
斌果^O^14 小时前
SpringBoot 实战:@Async + CompletableFuture 实现多 SQL 并行统计查询
java·spring boot·sql
weixin_4567231614 小时前
Java项目的rabbitmq配置vhost
java·rabbitmq·java-rabbitmq
李少兄14 小时前
解决 java.net.ConnectException: Connection refused 报错
java·开发语言·.net
-南帝-15 小时前
行尾符格式转换问题(CRLF vs LF)如何快速解决(Agent)
java·ai
gumichef15 小时前
栈和队列(1)
开发语言·数据结构
小新同学^O^15 小时前
算法学习 --> 快速输入和输出
java·学习·算法