异或运算.

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

插入排序

对数器

相关推荐
lynnlovemin1 分钟前
Java技术研发年度深度总结:从架构优化到工程实践的破局之路
java·开发语言·架构·年度总结
05大叔12 分钟前
Spring Day03
java·后端·spring
刘宇涵4915 分钟前
链表头结点
java
思成Codes24 分钟前
数据结构: 权值线段树——线段树系列(提供模板)
数据结构·算法
笨手笨脚の25 分钟前
链表与LinkedList
java·数据结构·链表·linkedlist
BD_Marathon26 分钟前
Claude Code概述
java·开发语言
刘宇涵4927 分钟前
Java pos
java
历程里程碑29 分钟前
破解三数之和:双指针高效解法
c语言·数据结构·c++·经验分享·算法·leetcode·排序算法
这周也會开心30 分钟前
Collections和Arrays工具类整理
java·开发语言
期待のcode30 分钟前
Jackson
java·spring boot·json