【leetcode】【Easy】【461. Hamming Distance】【bit manipulation】
2017-01-14 18:31
344 查看
problem link:https://leetcode.com/problems/hamming-distance/
code:
效率从高到低的三种方法
第一种方法,要知道java中int占用4个字节(char占用2个字节 reference:http://blog.csdn.net/witsmakemen/article/details/8974200),这种类型的题既然位操作就要使用位操作,所以第二种方法要比第一种方法效率低一点。第三种方法用的是java自带的方法。
code:
效率从高到低的三种方法
第一种方法,要知道java中int占用4个字节(char占用2个字节 reference:http://blog.csdn.net/witsmakemen/article/details/8974200),这种类型的题既然位操作就要使用位操作,所以第二种方法要比第一种方法效率低一点。第三种方法用的是java自带的方法。
public int hammingDistance(int x, int y) { int z=x^y; int bits=0; for(int i=0;i<32;i++){ bits+=z&1; z=z>>1; } return bits; } public int hammingDistance(int x, int y) { int z=x^y; int bits=0; while(z!=0){ bits+=z%2; z=z>>1;//比除以2效率要高很多 } return bits; } public int hammingDistance(int x, int y) { return Integer.bitCount(x ^ y); }
相关文章推荐
- [00803]让对象支持上下文管理协议
- 基于64位win10系统离线配置Android Studio
- Kattis - Fenwick Tree(树状数组区间更新单点求值)
- 【Zookeeper】源码分析之持久化(三)之FileTxnSnapLog
- deepin linux mysql工具
- XUtils—支持大文件上传,更全面的网络工具
- 区块链专家技能图谱
- 英语学术论文常用句型
- 【c语言】模拟实现strcat()、strncat()函数
- 【C++】Loki库源码读解随想
- Note05
- DataSource和SessionFactory的区别
- 关于preg_match()函数的一点小说明
- Locust使用点滴
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supporte
- 健身饮食计划:增肌人群
- JAVA中几种文件操作流的效率对比
- 约瑟夫环
- Note04
- Linux 系统管理员 2017 年的 10 个新决心