「每日LeetCode」2021年6月2日

本文最后更新于:2023年3月19日 晚上

Lt476. 数字的补数

476. 数字的补数

给你一个 整数 num ,输出它的补数。补数是对该数的二进制表示取反。
示例 1:

1
2
3
输入:num = 5
输出:2
解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2

示例 2:

1
2
3
输入:num = 1
输出:0
解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0

提示:

思路

转为二进制以后,遍历取反返回再转为十进制。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @param {number} num
* @return {number}
*/
var findComplement = function (num) {
return parseInt(
num
.toString(2)
.split("")
.map((char) => +char ^ 1)
.join(""),
2
);
};