码迷,mamicode.com
首页 >  
搜索关键字:异或运算    ( 502个结果
【剑指Offer学习】【面试题40:数组中只出现一次的数字】
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。我们想到异或运算的一个性质:任何一个数字异或它自己都等于0。也就是说, 如果我们从头到尾依次异或数组中的每一个数字,那么最终的结果刚好是那个只出现一次的数字,因为那些成对出现两次的数字全部在异或中抵消了。...
分类:编程语言   时间:2015-07-06 12:21:17    阅读次数:139
LeetCode练习-singleNumber
题目意思:一个数值数组中,大部分的数值出现两次,只有一个数值只出现过一次,求编程求出该数字。 要求,时间复杂度为线性,空间复杂度为O(1).解题思路:1.先排序,后查找。由于排序的最快时间是O(nlogn), 所以这种方法不能满足时间的要求。2.其它技巧来解决:根据基本的计算机组成原理的知识,采用”异或运算“来巧妙的完成,异或运算很简单:0^0=0 1^1=0 1^0=0^1=1也就是说相同则...
分类:编程语言   时间:2015-07-03 00:19:15    阅读次数:183
异或运算的应用
异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。异或的性质交换律:a ^ b = b ^ a结合律:a ^ b ^ c = a ^ (b ^...
分类:其他好文   时间:2015-06-30 20:15:23    阅读次数:154
[小米] 异形数
在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。 例如: a = {1,3,7,9,5,9,4,3,6,1,7},输出4或5或6。解题思路 如果只有一个只出现一次,将所有数做异或运算,返回其值。 如果有两个数只出现一次,假设为a和b,全部数做异或运算的结果为x=a^b,由于a和b不相等,所以x不为0。...
分类:移动开发   时间:2015-06-23 20:09:43    阅读次数:149
136 Single Number(找唯一数Medium)
题目意思:一个int数组,有一个数只出现一次,其他数均出现两次,找到这个唯一数知识普及:~:非运算,单目运算符1为0,0为1; &:与运算,都为1则为1,否则为0 |:或运算,全为0则为0,否则为1 ^:异或运算,相同为0,不同为1思路:将数组中元素进行异或运算,则只剩下0...
分类:其他好文   时间:2015-06-12 11:31:24    阅读次数:102
面试题:在一个数组中有0-99之间的整数101个(数组无序),用高效方法找出其中的唯一的重复元素!
找出101个数据中重复的元素 * 题目如下:现有0到99,共计100个整数,各不相同,将所有数放入一个数组,随机排布。 * 数组长度101,多余的数字是0到99其中任意一个数(唯一重复的数字) * 请将这个重复的数字找出来 这道题有三种方式:第一种用交换排序找出,第二种求数组的和再减去0-99,第三种异或运算求出...
分类:编程语言   时间:2015-06-08 10:01:03    阅读次数:203
用异或实现交换,可不用中间变量
前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面:void exchange(int&a,int&b){a ^=b;b ^=a;a ^=b;}然而,这里面却存在着一个非常隐蔽的陷阱。通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(&a[i], &...
分类:其他好文   时间:2015-06-02 12:59:01    阅读次数:128
zoj 3870 异或运算
异或...
分类:其他好文   时间:2015-06-01 18:46:37    阅读次数:113
网络误区:不用中间变量交换2个变量的value,最高效的是异或运算.
本文记录了不使用中间变量交换2个变量的value,很多的网络留言说是直接异或运算就可以了,而且效率很高,是真的吗?关于这个问题,网络上面有很多的解释,3种方法,我这里给比较一下各自的优缺点,然后简单分析一下汇编代码,分析代码如下:#include void swap1(int &a,int &b){...
分类:其他好文   时间:2015-05-31 22:50:50    阅读次数:214
异或^符号在C/C++中的使用 & 杭电oj 2095
异或^符号,在平时的学习时可能遇到的不多,不过有时使用得当可以发挥意想不到的结果。值得注意的是,异或运算是建立在二进制基础上的,所有运算过程都是按位异或(即相同为0,不同为1,也称模二加),得到最终结果。特点:任何数和0异或都等于它本身;两个相同的数异或后的结果是0;举例如下:int a = 4 =...
分类:编程语言   时间:2015-05-27 00:39:55    阅读次数:150
502条   上一页 1 ... 37 38 39 40 41 ... 51 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!