异或运算.

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

插入排序

对数器

相关推荐
日拱一卒——功不唐捐10 分钟前
循环队列+双端队列(C语言)
c语言·数据结构
roman_日积跬步-终至千里17 分钟前
【Java 并发-面试】从线程基础到企业级开发的知识点概况
java·开发语言
hnjzsyjyj17 分钟前
洛谷 P3383:线性筛素数 ← 埃氏筛
数据结构·埃氏筛
m0_7482331720 分钟前
C与C++:底层编程的六大核心共性
java·开发语言
坊钰25 分钟前
【Rabbit MQ】Rabbit MQ 介绍
java·rabbitmq
80530单词突击赢31 分钟前
STLVector底层原理与高效运用
数据结构·算法
雀啼春33 分钟前
Java中的数据类型
java
haluhalu.35 分钟前
LeetCode---基础算法刷题指南
数据结构·算法·leetcode
80530单词突击赢42 分钟前
C++关联容器深度解析:set/map全攻略
java·数据结构·算法