随笔分类 - 位运算
摘要:题目 这是一道字符串的题目,题目呢要求找到两个字符串没有重复的字符,且两者长度的乘积最大。暴力可以过。但是在比较字符串的时候可以用位运算,这样时间会大大缩短。 关于字符串,限制在只有小写字母的时候,位运算是可以运用起来,把一串字符用一个数字表示。两个字符串是否有重复,只需要位与一下就可以了 clas
阅读全文
摘要:"题目" 题意:一个数组里有两个数字都只出现一次,其余的数字都出现两次,找出这两个数字 题解:我们先把整个数组连着异或一遍,得到的结果是那两个不同数字的异或结果,其结果必然大于等于1 我们把结果中第一个为1的位,作为判断条件。如果数组中相应位为1,则分到A组,相应位为0则分到B组,这样A,B组每组都
阅读全文
摘要:"题目" 判断一个数是否是2的整次幂最快的方式是,是判断x和x&( x)是否相等。 这道题目要注意0,和 INTMIN
阅读全文
摘要:"题目" 题意:计算一个完全二叉树的节点个数 题解:DFS 或者BFS都太low,我们可以用O(log(n)^2)的效率解决,n为节点个数,log(n)就是树的高度。 我们首先获得数的高度,然后,二分去寻找,最后一层的最右边的一个节点,就能计算树的节点个数了。 二分是Log(n),DFS也是Log(
阅读全文
摘要:"题目" 题意:给你两个数n,m 0=0;i ) { if(x=a[i]) { return 0; } if(x =a[i]&&y =a[i]) { return a[i]; } } return 0; } }; ```
阅读全文
摘要:"题目" 题意:求一个数的二进制形式里有多少个1,我们可以用位运算一位一位的去取,但是还有更高级的方法。 x&( x) 得出的x的从右往左第一个1,形成的十进制数。我们每次让x x&( x),不断的减1,就好了。
阅读全文
摘要:"题目" 很简单的位运算题目
阅读全文
摘要:"题目" 题意:判断一个DNA序列中,长度为10的子序列,重复次数超过1次的序列! 题解:用一个map 就能搞定了,但是出于时间效率的优化,我们可以用位运算和数组代替map,首先只有四个字母,就可以用00,01,10,11 四个二进制表示,长度为10的序列,可以用长度为20的二进制序列表示。这样每中
阅读全文