什么是异或

异或的运算方法是一个二进制运算:1^1=00^0=01^0=10^1=1两者相等为0,不等为1.

由此得出
0^N=N
N^N=0
2)异或运算满足交换律和结合率
a^b=b ^a
(a^b) ^c= a ^( b ^ c)

int a=甲;
int  b=乙;
a=a ^b;    a=甲 ^ 乙;  b=乙;
b=a ^b;    a=甲 ^ 乙;  b=甲 ^ 乙 ^ 乙=甲 ;
a=a ^b;    b=甲        a=甲 ^ 乙 ^ 甲=乙;

必须满足内存区域不能相等才能用异或运算

异或的题型

在一个数组中,整型数组,已知只有一种数出现了奇数次,其他数出现了偶数次
满足 时间复杂度o(N),空间复杂度未o(1)
找出奇数次的数public static void printoddTimesNum1(int[]arr){int eor =0;for (int cur :arr){eor ^=cur;}System.out.println(eor);
}

为什么这么写嗯

例如一个数组:
四个1 ;四个2 三个3
[1,3,2,1,2,3,1,2,3,1,2]
1^1 ^1 ^1 ^ 2 ^2 ^2 ^2 ^3 ^ 3 ^3=3;
因为
1^1 ^1 ^1=0;
2^2 ^2 ^2=0;
3^ 3 ^3=3;

在一个数组中,整型数组,已知只有俩种数出现了奇数次,其他数出现了偶数次
满足 时间复杂度o(N),空间复杂度未o(1)
找出奇数次的数public static void printoddTimesNum1(int[]arr){int eor =0;for (int cur :arr){eor ^=cur;}System.out.println(eor);
}

全部异或之后就剩俩个奇数的异或了,
也就是 a^b

java 异或代码编程相关推荐

  1. java单行字符_十个便捷的单行代码编程技巧

    1.对列表/数组中的每个元素都乘以2//  www.1b23.com Range是半开区间 int [] ia = range(1, 10).map(i -> i * 2).toArray(); ...

  2. java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )

    原标题:Java 中的十个 " 单行代码编程 " ( OneLiner ) 作者:飒然Hang 原文链接:www.rowkey.me/blog/2017/09/09/java-on ...

  3. java编程算法出现在窗口_Java实现轨迹压缩算法开放窗口代码编程实例分享

    Java实现轨迹压缩算法开放窗口代码编程实例分享,今天要给各位朋友分享的这篇文章主要介绍了Java编程实现轨迹压缩算法开放窗口实例代码,具有一定的参考价值,有兴趣的朋友来看看吧. 轨迹压缩算法 场景描 ...

  4. java和scala代码可以混合编写吗_Scala字符串插值的妙用,以及java+scala混合编程

    一 我们在项目中遇到一个需求,输入为json字符串,如: { "title": "lrtest", "alg": "Logisti ...

  5. 知识库递归编程java和prolog代码;逻辑语言Prolog简介(附24555字PDF发“递归prolog简介”下载)

    知识库递归编程java和prolog代码:逻辑语言Prolog简介(附24555字PDF发"递归prolog简介"下载) 数据简化DataSimp 今天 数据简化DataSimp导 ...

  6. Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略

    Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...

  7. 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  8. 厚积薄发打卡Day26:狂神说Java之JUC并发编程<代码+笔记>(上)

    前言: 学习视频来源:[狂神说Java]JUC并发编程最新版通俗易懂 一个十分优秀且励志的技术大牛+Java讲师,十分推荐他的频道:遇见狂神说

  9. java 用程序代码解释继承_关于初级java程序员笔试题

    关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...

  10. Java项目的代码如何实现?

    Java项目的代码实现基本是使用Java语言进行编写,Java代码的编写遵循一定的规范和约定.本文将介绍Java项目代码实现的主要概念和技术. 1.类和对象 Java是一种面向对象的语言,类是创建Ja ...

最新文章

  1. 1.8M超轻量目标检测模型NanoDet,比YOLO跑得快
  2. 显卡暴涨,等等党输了,这我万万没想到啊
  3. “贩卖”国潮新鲜感的花西子、完美日记们,能炒多久?
  4. SAP CRM呼叫中心的邮件发送实现 - Function module CRM_EMAIL_SEND_EMAIL
  5. python字符串添加_python字符串的增删改查
  6. 童话镇计算机乐谱,童话镇简谱(歌词)-陈一发演唱-桃李醉春风记谱
  7. 35 岁之前不应该错过的 30 本书
  8. MFC实现 MSN QQ 窗口抖动
  9. 小米手表外观官宣:方表盘+黑银两色
  10. 高晓松卸任北京阿里巴巴音乐科技有限公司董事长
  11. Java中printmax的调用形式_媒体类型和响应式设计
  12. docker启动nginx后挂了_学员整理笔记系列8 启动docker后运行不了vmware该怎么办?...
  13. 境外WiFi市场持续升温 2016年或迎普及元年
  14. Go sync.Map 看一看
  15. oracle 12g 无监听,Oracle 12.2监听无法启动解决一例
  16. xp系统怎样安装传真服务器,XP系统传真服务怎么安装?配置传真教程
  17. TwinCAT3安装教程-EtherCAT学习
  18. day06笔记(2021-09-28)-OOP:面向对象+封装+继承+多态
  19. 有一牧场,已知养牛27头,6天把草吃尽;养牛23头,9天把草吃尽。如果养牛21头,那么几天能把牧场上的草吃尽呢?并且牧场上的草是不断生长的。
  20. 重要的人工神经元--感知器和Sigmod神经元

热门文章

  1. [Android]如何修改android模拟器的IMEI号
  2. 案例分享:Qt的PPT播放器
  3. HSPICE 电平触发D触发器仿真
  4. 2月书讯 | 这本书让无数读者盼了千万遍
  5. html 倒计时,jQuery倒计时插件
  6. 由PPP项目总结的几点项目经验
  7. arcgis加载经纬度信息并导入91地图
  8. phpcms开发微信小程序api
  9. 导出oracle数据库日志文件,Oracle数据库导出还原的两种基本方法imp/impdp
  10. Java基础篇——垃圾回收