异或运算.

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

插入排序

对数器

相关推荐
渣哥21 小时前
原来 Java 里线程安全集合有这么多种
java
间彧21 小时前
Spring Boot集成Spring Security完整指南
java
间彧21 小时前
Spring Secutiy基本原理及工作流程
java
Java水解1 天前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆1 天前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学1 天前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole1 天前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊1 天前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端
程序员鱼皮1 天前
刚刚 Java 25 炸裂发布!让 Java 再次伟大
java·javascript·计算机·程序员·编程·开发·代码