数组中含有n个数,其中一个数只出现1次,其余个数均出现3次,就只出现1次的数。
首先应该想到的就是计数法,先对数组排序,然后统计每个数出现的次数,找出出现次数为1个数;
更高级一点的方法还是用位运算,充分发掘数字二进制中的0和1出现的规律。一个数字是由0和1组成的,如果这个数字出现3次,那么这个数字中各个位上0和1出现的次数也应该是3次。按照这样统计数组中所有数的各个位1的个数,如果个数是1个倍数,这所求数字该位不为1。
举例如下:
数组: 1, 3, 1, 5, 1, 6, 5, 6, 6, 5
对应的...
分类:
其他好文 时间:
2014-06-20 12:45:44
阅读次数:
185
数组含有n个数,其中有一个数只出现1次,其余的数都出现两次,求只出现一次的数。 这个主要考察的是位运算中的异或运算的性质-----当两个相等的数做异或运算他们的值为0(a^a = 0)。本题中对数组中所有的数做异或,那么最后异或的结果就是只出现1次的数。思想很简单代码如下:...
分类:
其他好文 时间:
2014-06-20 10:02:03
阅读次数:
281
基本运行符:+(加法、正数)- (减法、负数)* (乘法)/ (除法)% (求余) :
在Swift中,求余可以是浮点数求余。&&(逻辑与)|| (逻辑或)^
(逻辑异或)表示范围的符号:..和...(两个点:不包括下界和三个点包括下界)++,--三位运算符 ?:需要注意的是范围符号..和... 区...
分类:
其他好文 时间:
2014-06-13 20:19:27
阅读次数:
330
PHP中有丰富的运算符集,它们中大部分直接来自于C语言。按照不同功能区分,运算符可以分为:算术运算符、字符串运算符、赋值运算符、位运算符、条件运算符,以及逻辑运算符等。当各种运算符同在一个表达式中时,它们的运算是有一定的优先级的,下面将详细介绍。PPT下载请点击
PHP5.4 的流程控制语句if ....
分类:
Web程序 时间:
2014-06-12 07:44:26
阅读次数:
231
二进制原码:最高位为符号位,0为正 1为负正数的原码 反码 补码
都是相同的反码:负数的反码为原码符号位不变 其它对应变化(1变0 0变1)补码:等于 反码+13^-3 =?运算过程-3 10000000 00000000
00000000 00000011 原码11111111 11111111 ...
分类:
其他好文 时间:
2014-06-11 11:08:34
阅读次数:
156
原文地址:http://graphics.stanford.edu/~seander/bithacks.html有本书叫hack‘s
delight也是主讲位运算的。下面正文开始翻译吧,不定时更新。声明:如无特殊说明,所有的代码段都是不受版权限制的,如果喜欢,大家可以随便使用。文章内容由Sean
E...
分类:
其他好文 时间:
2014-06-11 10:29:59
阅读次数:
338
先要了解一下C语言里全部的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。 “=0。
功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。 “>>”使用方法:
格式是:a>>m,a和m必须是整型表达式,要求m>=0。 功能:将整型数a按二进制位向右移动m...
分类:
编程语言 时间:
2014-06-11 07:15:45
阅读次数:
242
题目:http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=448这题刚开始想弄个2^16 的集合搞,然后位运算搞下。
位运算一直没搞好,不用又超时。 还是直接搜吧,加剪枝就过了。#include #include #include #include #include ...
分类:
其他好文 时间:
2014-06-10 08:47:28
阅读次数:
180
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结...
分类:
其他好文 时间:
2014-06-09 20:01:30
阅读次数:
187