LeetCode_Number of Bits_for Java
2015-03-22 16:45
337 查看
题目:
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming
weight).
For example, the 32-bit integer ’11' has binary representation
so the function should return 3.
Answer:
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int result = 0;
while(n != 0 ){
int bit = n & 1;
if(bit == 1)
result ++;
n>>>= 1;
}
return result;
}
}
思考:
1、java 没有 unsigned ,why, http://www.cnblogs.com/yuanyq/p/java_unsigned_types.html 这篇文章不错,都问到了java的设计者,一句话,简单。
2、对无符号的所以一开始考虑了很多问题,后来发现都没有用上,包括将其转换成long
long temp = n & 0x0FFFFFFFF
3、对于long , 定义long 的时候 要在最后加 L,否则是默认的int 奇怪我定义了long型的参数,传入 2的31次方,总是报错,不知道为什么。
4、Integer 自带将十进制转换成二进制字符串的方法,toBinaryString(int n) ,更加高能的是提供了此bitCount(int n) , 再次感觉到 java 已经封装的不行了,什么方法都已经提供了,我们只需要熟悉API即可!!但是这样的结果就是Runtime很高,这也是java 永远比不上c++ 的地方。
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming
weight).
For example, the 32-bit integer ’11' has binary representation
00000000000000000000000000001011,
so the function should return 3.
Answer:
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int result = 0;
while(n != 0 ){
int bit = n & 1;
if(bit == 1)
result ++;
n>>>= 1;
}
return result;
}
}
思考:
1、java 没有 unsigned ,why, http://www.cnblogs.com/yuanyq/p/java_unsigned_types.html 这篇文章不错,都问到了java的设计者,一句话,简单。
2、对无符号的所以一开始考虑了很多问题,后来发现都没有用上,包括将其转换成long
long temp = n & 0x0FFFFFFFF
3、对于long , 定义long 的时候 要在最后加 L,否则是默认的int 奇怪我定义了long型的参数,传入 2的31次方,总是报错,不知道为什么。
4、Integer 自带将十进制转换成二进制字符串的方法,toBinaryString(int n) ,更加高能的是提供了此bitCount(int n) , 再次感觉到 java 已经封装的不行了,什么方法都已经提供了,我们只需要熟悉API即可!!但是这样的结果就是Runtime很高,这也是java 永远比不上c++ 的地方。
相关文章推荐
- Java for LeetCode 191 Number of 1 Bits
- Java for LeetCode 200 Number of Islands
- LeetCode 191 -Number of 1 Bits ( JAVA )
- LeetCode|Number of 1 Bits-java
- Java [Leetcode 191]Number of 1 Bits
- [LeetCode][Java] Number of 1 Bits
- LeetCode Number of 1 Bits JAVA
- LeetCode191:Number of 1 Bits【Java】
- (java)leetcode Number of 1 Bits
- 【leetcode】Number of 1 Bits
- Leetcode: Number of 1 Bits
- Leetcode NO.191 Number of 1 Bits
- Leetcode: Number of 1 Bits
- LeetCode 191 Number of 1 Bits
- [leetcode] Number of 1 Bits
- [leetcode]Number of 1 Bits
- LeetCode191——Number of 1 Bits
- LeetCode "Number of 1 Bits"
- [LeetCode] Number of 1 Bits
- [LeetCode] Number of 1 Bits 位操作