位运算
鯉鱼
妹妹你大胆地往前走呀
展开
-
二进制中1的个数
题目描述:输入一个32位整数,输出该数二进制表示中1的个数。注意:负数在计算机中用其绝对值的补码来表示。样例1 输入:9 输出:2解释:9的二进制表示是1001,一共有2个1。样例2 输入:-2 输出:31解释:-2在计算机里会被表示成11111111111111111111111111111110, 一共有31个1。分析:先判断整数二进制表示中最右边一位是不是1,然后右移一位,原...原创 2019-05-14 22:10:43 · 457 阅读 · 0 评论 -
x的n次幂
题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。样例:输入: 2.00000, 10输出: 1024.00000说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [-2147483648, 2147483647] 。分析:计算x 的 n 次幂:如果采用常规解法循环n次对想相乘,当x=0.000001,n=21474...原创 2019-05-15 08:31:40 · 2644 阅读 · 0 评论 -
数组中只出现一次的两个数字
与运算:有0则0。或运算:有1则1。与或运算:相同为0,相异为1。题目描述:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。样例:输入: [1,2,1,3,2,5]输出: [3,5]分析:异或运算的性质:任何一个数字异或它自己都等于0。首先考虑如果数组中只有一个元素出现一次,其余元素均出现了两次。我们从头到尾依次异...原创 2019-05-21 12:37:17 · 859 阅读 · 0 评论 -
数组中只出现一次的两个数字②
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。样例:输入: [2,2,3,2]输出: 3输入: [0,1,0,1,0,1,99]输出: 99分析:继续沿用位运算的思路,如果一个数字出现了三次,那么它的每一位二进制表示也出现了三次。如果把所有出现三次的数字的二进制表示的每一位都分别加起来,那么每一位的和都能被三整除。...原创 2019-05-21 15:30:01 · 270 阅读 · 0 评论 -
不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷ 四则运算符号。样例:输入:num1 = 1 , num2 = 2输出:3分析:借助位运算实现。第一步只相加不进位即0+0=0,1+1=0,0+1=1,所以对于了二进制的异或运算;第二步考虑进位,只有在1+1的情况下才会出现进位,所以我们可以当做两个数做与运算然后左移一位;第三步把前两步的结果相加:相加的过...原创 2019-05-22 22:33:28 · 98 阅读 · 0 评论