前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java异或运算符_python 异或

java异或运算符_python 异或

作者头像
全栈程序员站长
发布于 2022-09-27 05:40:50
发布于 2022-09-27 05:40:50
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Java-异或运算

异或运算法则

1. a ^ b = b ^ a   2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;   3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.   4. a ^ b ^ a = b.

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

1^1=0

0^0=0

1^0=1

0^1=1

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

例图:

总结

1、异或是一个数学运算符。应用于逻辑运算。 2、真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值相异结果为真。 3、n^0=n n^n=0,即任何数与0进行异或,为它本身,两个相同的数进行异或运算,会得到0。

例题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/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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/80931693/

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode通关:求次数有妙招,位运算三连
大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题,它们都有同一类非常巧妙的解法。
三分恶
2021/08/06
3670
位运算问题-LeetCode 136、137、260(只出现一次的数,异或运算)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?
算法工程师之路
2019/11/04
6260
【剑指offer:数组中数字出现的次数I】使用异或运算来分组(JavaScript实现)
题目描述:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n),空间复杂度是 O(1)。
心谭博客
2020/04/21
1.1K0
268. 丢失的数字--java-异或运算
这里采用了异或运算,那么,什么是异或运算呢 异或的运算方法是一个二进制运算: a ^ b 将其转为二进制,然后每一位都进行比较,两者相等为0,不等为1,得到的就是异或运算的结果。 例如: 2 ^ 4 = 6 解释: 0010 ******* = 0110 = 6 0100
向着百万年薪努力的小赵
2022/12/02
3580
268. 丢失的数字--java-异或运算
Python异或运算符示例
我们在异或运算的过程中根据异或门的逻辑来看,因为数都是成对的,那么成对的数在异或过程中都会被消耗掉,只有单独存在的一个数不会被配对消耗掉,故而可以留存到最后。
红目香薰
2022/11/30
6990
Python异或运算符示例
【LeetCode 136.只出现一次的数字I】巧用异或运算
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
心谭博客
2020/04/21
2620
异或和与运算_逻辑异或运算规则
异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
全栈程序员站长
2022/09/16
3.5K0
java基础-异或运算[通俗易懂]
异或运算主要用于判断两个值是否一样 异或运算的3个性质: 1.任何数和0进行异或运算,结果是原来的数,即b⊕0=b 2.任何数和其自身进行异或运算,结果为0,即b⊕b=0。 3.异或运算满足交换律和结合律,即x⊕y⊕x=y⊕(x⊕x)=y
全栈程序员站长
2022/11/09
1.2K0
java基础-异或运算[通俗易懂]
python中的异或运算
leetcode上有这么一道题:【136. Single Number】 这个题是给出一个非空列表,里面的元素只有一个只出现了一次,其余都出现了两次,找出这个只出现了一次的元素。 这个题目很简单,写了一下直接提交:
生信编程日常
2020/05/19
6K0
【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
给定一个数组,包含从 到 所有的整数,但其中缺了两个数字。你能在 时间内只用 的空间找到它们吗?
godweiyang
2020/03/24
6050
LeetCode,只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
微客鸟窝
2021/08/18
6040
LeetCode,只出现一次的数字
画解算法:136. 只出现一次的数字
https://leetcode-cn.com/problems/single-number/
灵魂画师牧码
2019/06/27
3540
画解算法:136. 只出现一次的数字
Python 刷题笔记:位运算专题二
正数三码相同,负数的反码才会除了首位符号位不变、其余位取反。位运算都是基于数字的补码来进行运算的。
TTTEED
2020/07/09
1.1K0
java利用异或运算的性质,对几个字符_java位运算符详解
做Java这么久,还真的从来没有用到过某些基础的Java知识。今天就遇到了一个:Java的异或运算^,这个小不点“^”就是Java的异或运算符,是不是有点小,再来个大点的看得清楚:
全栈程序员站长
2022/11/09
2590
java利用异或运算的性质,对几个字符_java位运算符详解
【LeetCode】136.只出现一次的数字(三种解法)
这是LeetCode上的一道算法题,笔者整理了三种解题思路和方法,希望可以帮助大家提升算法的思维。
VIBE
2022/12/02
2180
LeetCode - Nim游戏 & 只出现一次的数字
原题地址:https://leetcode-cn.com/problems/nim-game/ & https://leetcode-cn.com/problems/single-number/
晓痴
2019/10/12
3910
【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
godweiyang
2020/03/24
3440
【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程
算法篇:位运算异或的使用(一)
https://leetcode-cn.com/problems/single-number/
灰子学技术
2020/09/23
4660
算法篇:位运算异或的使用(一)
【leetcode系列】136. 只出现一次的数字
https://leetcode.com/problems/single-number/description/
lucifer210
2019/08/16
3790
位运算中异或的常见用法总结
异或(^) 这个位操作运算符相信大家一定都不陌生,这个运算符可以用来解决很多普通算法解决不了的问题,而且位运算是直接对二进制码做运算,相对普通的加减乘除运算符来说的话更加的高效,我们借着题目一起来看看。
五分钟学算法
2019/09/03
1.3K0
推荐阅读
相关推荐
LeetCode通关:求次数有妙招,位运算三连
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文