128th LeetCode Weekly Contest Complement of Base 10 Integer

Posted 樱花落舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了128th LeetCode Weekly Contest Complement of Base 10 Integer相关的知识,希望对你有一定的参考价值。

Every non-negative integer N has a binary representation.  For example, 5 can be represented as "101" in binary, 11 as "1011" in binary, and so on.  Note that except for N = 0, there are no leading zeroes in any binary representation.

The complement of a binary representation is the number in binary you get when changing every 1 to a 0 and 0 to a 1.  For example, the complement of "101" in binary is "010" in binary.

For a given number N in base-10, return the complement of it‘s binary representation as a base-10 integer.

 

Example 1:

Input: 5
Output: 2
Explanation: 5 is "101" in binary, with complement "010" in binary, which is 2 in base-10.

Example 2:

Input: 7
Output: 0
Explanation: 7 is "111" in binary, with complement "000" in binary, which is 0 in base-10.

Example 3:

Input: 10
Output: 5
Explanation: 10 is "1010" in binary, with complement "0101" in binary, which is 5 in base-10.

 

Note:

  1. 0 <= N < 10^9

题意啥的去看看中文版的就好了。简单一点看看example

大佬的代码很短的

class Solution {
public:
    int bitwiseComplement(int N) {
        int num[33] = {0};
        int cnt = 0;
        int sum = 0;
        int flag = 1;
        if(N == 0){
            return 1;
        }
        while(N){
            int pos = N % 2;
            num[cnt++] = pos == 1 ? 0 : 1;
            N/=2;
        }
        for(int i = 0 ; i < cnt ; i++){
            //cout<<num[i]<<endl;
            if(num[i] == 0){
                sum += 0;
            }else{
                sum += flag;                
            }
            flag *= 2;
        }
        //cout<<endl;
        return sum;
    }
};

 

以上是关于128th LeetCode Weekly Contest Complement of Base 10 Integer的主要内容,如果未能解决你的问题,请参考以下文章

118th LeetCode Weekly Contest Pancake Sorting

113th LeetCode Weekly Contest Flip Equivalent Binary Trees

108th LeetCode Weekly Contest Minimum Falling Path Sum

113th LeetCode Weekly Contest Reveal Cards In Increasing Order

116th LeetCode Weekly Contest Maximum Width Ramp

113th LeetCode Weekly Contest Largest Time for Given Digits