前两天DP都不会,版上有推荐是先写75里面的dp部分还是leetcode dp标签的题目吗
题目:
476. Number Complement
给一个数字num,求他的无号补数
思路:
可以很直观用数学的方式知道这个补数会是pow(2,num的binary长度)-1-num,如果
是用bitwise的角度去看是对每一个bit做nand 1,由于是无号的所以先对num做not运算
再每一个位元对1做and
int findComplement(int num) {
int g=num;
int y=0;
while(num){
y=(y<<1)|1;
num>>=1;
}
return ~g&y;
}