Leetcode练习 476. Number Complement

来源:互联网 发布:推理游戏 知乎 编辑:程序博客网 时间:2024/06/08 20:13

Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.

Note:

  1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
  2. 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.

求各位取反后的数,直接用not会把前面的位数都算上。。。这边用了一个highestOneBit函数,直接返回最大1所在的位置的数

public class Solution {    public int findComplement(int num) {        int n=(Integer.highestOneBit(num)<<1)-1;        return n^num;    }}


0 0