异或运算.

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

插入排序

对数器

相关推荐
CoderYanger2 分钟前
递归、搜索与回溯-记忆化搜索:40.矩阵中的最长递增路径
java·线性代数·算法·leetcode·矩阵·1024程序员节
报错小能手4 分钟前
数据结构 不带头结点的双向循环链表
数据结构·算法·链表
万邦科技Lafite5 分钟前
淘宝拍立淘接口item_search_img实战应用指南
java·商品信息·开放api·电商开放平台
予辉安全6 分钟前
JAVA代码审计:鉴权漏洞深度分析
java
q_191328469510 分钟前
基于SpringBoot+uniapp+vue.js的货物配送系统
java·vue.js·spring boot·后端·mysql·uni-app·毕业设计
秋深枫叶红11 分钟前
嵌入式第二十五篇——数据结构单向链表
c语言·数据结构·学习·算法
LiuYaoheng12 分钟前
【Android】EventBus 的使用
android·java
v***553413 分钟前
什么是Spring Boot 应用开发?
java·spring boot·后端
k***921613 分钟前
SpringBoot集成MQTT客户端
java·spring boot·后端
二十雨辰18 分钟前
[天机学堂]-01环境搭建
java·spring cloud