Java-异或运算

Java-异或运算Java 异或运算异或运算法则异或的运算方法是一个二进制运算 例图 总结例题 1 例题 2 136 只出现一次的数字 力扣 异或运算法则 nbsp nbsp nbsp nbsp 1 a b b a 2 a b c a b c a b c 3 d a b c nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 可以推出 a d

异或运算法则

异或的运算方法是一个二进制运算:

1^1=0

0^0=0

1^0=1

0^1=1

两者相等为0,不等为1.

例图:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

例题1

那么参照上面的原则和公式我们来看看下面这道题来加深理解:
1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?
上边这个也可以用异或运算进行解题:
假设:1^2^3......^n.....^1000=T
而: 1^2^3......^n^n.....^1000 = T^n
我们已经知道T^T^n = 0^n = n这样的过程。
所以,我们对于上边的解题办法就有了:
首先对1到1000,这1000个数进行异或运算,然后再把上边的1001个数进行异或运算,最后,再对这两个结果进行异或运算,就会得到唯一的那个n。














例题2:136. 只出现一次的数字(力扣)

那么综合上面的所有知识点让我们投入实战:

  1. 只出现一次的数字
    题目链接:https://leetcode-cn.com/problems/single-number/

class Solution { 
    public int singleNumber(int[] nums) { 
    int ans=0; for(int i=0;i<nums.length;i++){ 
    ans^=nums[i]; //异或运算 } return ans; } } 


持续更新中…

文章参考学习地址:
https://leetcode-cn.com/problems/single-number/solution/hua-jie-suan-fa-136-zhi-chu-xian-yi-ci-de-shu-zi-b/


文章参考学习地址:
https://blog.csdn.net/wohaqiyi/article/details//



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229427.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:44
下一篇 2026年3月16日 下午4:44


相关推荐

  • 基数排序算法

    基数排序算法基数排序 区别与其他排序算法

    2026年3月16日
    2
  • 计算机网络p2p协议在第几页_p2p传输协议

    计算机网络p2p协议在第几页_p2p传输协议在上篇文章中说过,要写写P2P协议的,嗯,来写写,虽然写的不是太好.P2P是什么?还是要回到这个场景:如果想要下载一个电影,一般都是通过什么方式呢?我希望这次你的答案,除了HTTP方式,还有FTP方式(要不上篇文章岂不是白写了?)但是你发现了嘛,不管是HTTP的方式,还是FTP的方式,都有一个比较大的缺点,就是难以解决单一服务器的带宽压力,因为它们使用的都是传统的…

    2022年10月21日
    3
  • Date与时间戳的相互转换[通俗易懂]

    Date与时间戳的相互转换[通俗易懂]1、Date对象转换为时间戳Datedate=newDate();longtimes=date.getTime();System.out.println(times);效果如下:15088242832922、时间戳转换为Date日期对象longtimes=System.currentTimeMillis();Datedate=newDate(times);System.out.println(date);…

    2022年6月21日
    229
  • 遍历qvector_转:Qt 之 QVector

    遍历qvector_转:Qt 之 QVectorQVector 类是一个提供动态数组的模板类 QVector 是 Qt 普通容器类的一种 它将自己的每一个对象存储在连续的内存中 可以使用索引号来快速访问它们 QList QLinkedList 和 QVarLengthAr 也提供了相似的功能 它们使用方法如下 lQList 一般用得最多 它能满足我们绝大部分需求 像 prepend 和 insert 这样的操作通常比 QVector 要快些 这是由于 QL

    2026年3月18日
    3
  • 压力换算公斤单位换算_压力单位换算表

    压力换算公斤单位换算_压力单位换算表压力单位换算表来源:华强电子网作者:华仔浏览:1163时间:2016-08-1014:18标签:摘要:november6,2002牛顿/米2(帕斯卡)(n/m2)(pa)公斤力/米2(kgf/m2)公斤力/厘米2(kgf/cm2)巴(bar)标准大气压(atm)毫米水柱4oc(mmh2o)毫米水银柱0oc(mmhg)磅/英寸2(lb/in2,psi)牛顿/米2(帕斯卡)(n…

    2022年7月27日
    15
  • 玩转OpenClaw|云上OpenClaw接入元宝

    玩转OpenClaw|云上OpenClaw接入元宝

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号