【Leetcode】476. Number Complement

来源:互联网 发布:linux vi 到文件底部 编辑:程序博客网 时间:2024/05/17 06:55

思路:

(1)把num转换为二进制数存入bit数组,数组的高位存储二进制的高位,count记录二进制的位数。

(2)对count位依次取反,得到二进制形式。

(3)从二进制的低位开始依次转换为十进制。

public class Solution {    public int findComplement(int num) {        int[] bit = new int[32];    int result = 0;    int count = 0;    while (num >= 1) {        bit[count] = num % 2;        num = num / 2;        count++;    }    for (int i = 0; i < count; i++)         bit[i] = bit[i] ^ 1;    int j = 1;    for (int i = 0; i < count; i++)  {        result = result + bit[i] * j;        j = j * 2;    }    return result;    }}
Runtime:11ms

1 0
原创粉丝点击