Leetcode 476 數字的補數

2021-09-24 14:50:05 字數 630 閱讀 7791

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。

注意:

給定的整數保證在32位帶符號整數的範圍內。

你可以假定二進位制數不包含前導零位。

示例 1:

輸入:5

輸出:2

解釋:5的二進位制表示為101(沒有前導零位),其補數為010。所以你需要輸出2。

示例 2:

輸入:1

輸出:0

解釋:1的二進位制表示為1(沒有前導零位),其補數為0。所以你需要輸出0。

【思路】

如果我們能知道該數最高位的1所在的位置,就可以構造乙個長度和該資料所佔位置一樣長的乙個掩碼mask,然後概述和mask進行異或即可。

1

public

class

solution

8return num^(mask-1);9}

10 }

LeetCode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...

leetcode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5輸出 2解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1輸出 0解釋 1的二進位制表示...

LeetCode 476 數字的補數

給定乙個正整數,輸出它的補數。補數是對該數的二進位制表示取反。注意 給定的整數保證在32位帶符號整數的範圍內。你可以假定二進位制數不包含前導零位。示例 1 輸入 5 輸出 2 解釋 5的二進位制表示為101 沒有前導零位 其補數為010。所以你需要輸出2。示例 2 輸入 1 輸出 0 解釋 1的二進...