异或
Aylwang
这个作者很懒,什么都没留下…
展开
-
华为机试-HJ15 求int值二进制的1的个数
题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。 ##题目分析 利用位运算的右移,可以不断将最右边的二进制位挤掉,使得从右到左的每一位都可以当做最后一位,其与1相与,若为1,则当前二进制位为1,则计数+1; eg:3的二进制为0011;初始化cnt=0(1的个数) 0011(x = 4) 与1(0001)相与,等于1 ,即得最后一位为1,cnt+1; 将0011右移1位(x >> 1)得到001,与1(0001)相与,等于1,即得当前最后一位的实际的倒数第二位原创 2021-07-16 22:53:16 · 185 阅读 · 0 评论 -
剑指offer 56-2仅仅一个数x出现一次,其余出现三次,找x
题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums = [9,1,7,9,7,9,7] 输出:1 ##题目分析: 可以用两种方法。 位运算 求和法。这种要注意求完和有可能会很大,超过int范围,所以要将和的变量定义为long,最后再强制转为int。 /* class Solution { public int singleNumber(int[原创 2021-07-13 22:36:46 · 143 阅读 · 1 评论