「每日LeetCode」2021年10月18日

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

Lt476. 数字的补数

476. 数字的补数

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

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

提示:

思路

转化为 2 进制以后,对逐个位数取反,最后返回。

解答

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
);
};