Create 476. Number Complement.md

This commit is contained in:
唐树森 2018-10-30 21:39:42 +08:00 committed by GitHub
parent a7188d3a10
commit b8de092331
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

15
476. Number Complement.md Normal file
View File

@ -0,0 +1,15 @@
# [476. Number Complement](https://leetcode.com/problems/number-complement/description/)
# 思路
先将num的bit全部翻转再看num有多少前导0然后用一个合适的mask对之前的翻转结果进行与操作即可。
# C++
``` C++
class Solution {
public:
int findComplement(int num) {
if(num == 0) return 1;
int i, res = ~num, mask=0xffffffff;
while(mask & num) mask <<= 1;
return res & ~mask;
}
};
```