博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 476. Number ComplementJAVA语言
阅读量:6122 次
发布时间:2019-06-21

本文共 988 字,大约阅读时间需要 3 分钟。

1
2
3
4
5
6
7
8
9
10
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.
Note:
The given integer is guaranteed to fit within the range of a 32-bit signed integer.
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.

题意:给一个正整数,返回其补数。所谓补数就是。。。。1的补数是0.把每一位求补返回就好。

1
2
3
4
5
6
7
8
9
10
11
public 
class 
Solution {
    
public 
int 
findComplement(
int 
num) {
        
int 
cp=num;
        
int 
ans=
0
;  
        
while
(cp!=
0
){  
            
cp=cp/
2
;
            
ans++;
        
}  
        
return 
num^(
int
)(Math.pow(
2
,ans)-
1
);
    
}
}

PS:利用了异或的性质

A^1=-A。

先用ans求出正整数的二进制位数,然后直接与项ans个1表示的二进制和其异或即可。

本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1890949

转载地址:http://rewua.baihongyu.com/

你可能感兴趣的文章
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
Content Provider的权限
查看>>