题解 | #牛群的编码反转#(java实现)

牛群的编码反转

https://www.nowcoder.com/practice/fbbef1b8d84b45a49f95ebf63a3b353b

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param n int整型
     * @return int整型
     */
    public int reverseBits (int n) {
       
        int res = 0;
        for (int i = 0; i < 32; i ++) {
            res = (res << 1) + (n & 1);
            n >>= 1;
        }

        return res;

    }
}
  • 题目考察的知识点:异或运算

使用java实现,思路如下

使用一个循环来处理每一位二进制位。将变量 res 初始化为0,用于存储反转后的编码。 在循环中,首先将res 向左移动一位,为下一个二进制位的处理留出位置。 然后,使用位运算 n & 1 来获取原编码的最低位并赋给res。 接下来,我们将原编码 n 右移一位,这样下一次循环时可以处理下一个二进制位。 重复这些步骤直到处理完所有32位二进制位,然后将 res 返回作为反转后的编码。 这种方法的时间复杂度为 O(1),因为循环的次数是固定的,只需要进行32次迭代,与编码的大小无关。因此,该实现具有低时间复杂度。

全部评论

相关推荐

你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
渐好:软光栅真的写明白了吗,既然是软渲那技术栈不应该使用OpenGL,光追和bvh既不算什么高级渲染技术更不应该属于软渲的内容,git那个项目没啥用,建议把前两个项目重新组织一下语言,比如软渲染那个项目 冯着色和msaa、贴图这几项分开写,写的到位点,如果你还学过光追那就单独写出来,如果没把握考官问你答不上来就别写给自己找麻烦,在技术栈那一栏简单提一下自己学过就行,这样杂的放在一起不太严谨,个人愚见.
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务