算法题1——&和^相关
一、一个数组中包含一种数出现了奇数次,其他的数都出现了偶数次,找出这个出现了奇数次的数。
public static void main(String[] args) { int[] arr = {1, 3, 5, 3, 1}; int eor = 0; for (int i : arr) { eor ^= i; } System.out.println(eor); }
二、一个数组中包含两种数出现了奇数次,其他的数都出现了偶数次,找出这两个出现了奇数次的数。
public static void main(String[] args) { int[] arr = {1, 3, 5, 3, 1, 4};//为了取出a和b,这个数组里面的4和5 int eor = 0, rightOne; for (int i : arr) { eor ^= i; } //eor = a ^ b //eor != 0 //eor必然有一个位置上是1 rightOne = eor & (~eor + 1);//提取出最右边的1,就是a和b从右开始第一次分别是0和1的时候 int onlyOne = 0; for (int i : arr) { if ((i & rightOne) == 1) {// onlyOne ^= i; } } System.out.println(onlyOne + " " + (eor ^ onlyOne)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2021-04-20 设置火狐浏览器不缓存js与html,便于开发调试(火狐浏览器默认缓存js与html,导致开发调试带来很多不便)
2020-04-20 《企业应用架构模式》阅读笔记二
2019-04-20 第八周学习进度