码迷,mamicode.com
首页 > 其他好文 > 详细

异或运算

时间:2020-06-18 01:32:25      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:gnu   输入   bsp   tco   return   target   style   运算   nbsp   

异或运算基础  LeetCode268

 

异或运算规则:0^0=0;   0^1=1;   1^0=1;   1^1=0。同值取零,异值取一。

性质:1,交换律:a^b=b^a;  2,结合律:(a^b)^c=a^(b^c);  3, a^a=0, a^0=a;  4, a^b^b=a;

Swap两数:a=a^b;  b=a^b;  a=a^b.

 

给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。

 示例 1:

输入: [3,0,1]
输出: 2
示例 2:

输入: [9,6,4,2,3,5,7,0,1]
输出: 8

在此只考虑异或运算的方法。

 

/*
nums下标为0~n-1,nums值为0~n(missing),除missing和n外的数都出现了两次,用n与前2n个数取异或运算,得到的值即为missing。
*/
class
Solution { public int missingNumber(int[] nums) { int missing = nums.length; for (int i = 0; i < nums.length; i++) { missing ^= i ^ nums[i]; } return missing; } }

 

异或运算

标签:gnu   输入   bsp   tco   return   target   style   运算   nbsp   

原文地址:https://www.cnblogs.com/faded828x/p/13155409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!