【LeetCode】190Reverse Bits

来源:互联网 发布:无锡捷搜网络怎么样 编辑:程序博客网 时间:2024/06/02 07:08

Reverse bits of a given 32 bits unsigned integer.

For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).

Follow up:
If this function is called many times, how would you optimize it?

Note: Although the algorithm 2 solves the problem with one line code (using the original method in Integer.class),the algorithm 1 is faster than 2.

Algorithm 1:(Runtime:2ms)

public class Solution {    // you need treat n as an unsigned value    public int reverseBits(int n) {        int result = 0;        int index = 1;        for (int i = 0; i < 32; i++) {            if ((n & index) == index) {                result = result | (1 << (31 - i));            }            index = index << 1;        }        return result;    }}

Algorithm 2:(Runtime:3ms)

public class Solution {    // you need treat n as an unsigned value    public int reverseBits(int n) {        return Integer.reverse(n);    }}
0 0
原创粉丝点击