[Leetcode] 476. Number Complement 解题报告
来源:互联网 发布:淘宝上都是国产植鞣革 编辑:程序博客网 时间:2024/06/05 20:47
题目:
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
- The given integer is guaranteed to fit within the range of a 32-bit signed integer.
- You could assume no leading zero bit in the integer’s binary representation.
Example 1:
Input: 5Output: 2Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
Example 2:
Input: 1Output: 0Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
思路:
本来直接取反(~num)就可以了,但这样会在~num的二进制表示中产生额外的前导1。所以我们的思路就是定义一个掩码,使得该掩码在num的前导0的位置上全部为0,其余位置上全部为1。这就是下面代码片段中的~mask。得到~mask之后,再与~num进行与操作就可以了。
代码:
class Solution {public: int findComplement(int num) { unsigned mask = ~0; while (num & mask) { mask <<= 1; } return ~mask & ~num; }};
阅读全文
0 0
- [Leetcode] 476. Number Complement 解题报告
- 【LeetCode】Number Complement 解题报告
- Leetcode 476. Number Complement 补数 解题报告
- LeetCode 476. Number Complement
- leetcode 476. Number Complement
- 【Leetcode】476. Number Complement
- 【Leetcode】476. Number Complement
- LeetCode 476. Number Complement
- LeetCode 476. Number Complement
- LeetCode--476. Number Complement
- LeetCode 476. Number Complement
- 476. Number Complement [LeetCode]
- [LeetCode]476.Number Complement
- 【LeetCode】 476. Number Complement
- LeetCode 476. Number Complement
- LeetCode 476. Number Complement
- 【LeetCode】476. Number Complement
- leetcode 476. Number Complement
- 网络协议一些总结
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- pygame加载MP3音乐
- mysql相关命令汇总
- 决策树的剪枝理论
- [Leetcode] 476. Number Complement 解题报告
- C++/python解决汉诺塔问题
- ServletContext 与application
- HTML标签学习3
- kinect1获取深度图像
- CentOS下安装Git2.9
- iOS系统架构和常用框架
- 非洲 喀麦隆 Paul Epete CAGNOB 超大订单 骗局
- [洪流学堂]Hololens开发入门篇2之Hello World