Leetcode 颠倒二进制位/二进制求和

java 复制代码
class Solution {
    public int reverseBits(int n) {
        int rev = 0;
        for(int i = 0;i< 32 && n!= 0;i++){
            rev |= (n&1)<< (31-i);
            n >>>= 1;
        }
        return rev;
    }
}

n & 1相当于取最低位 ,<< 往左移动 (31-i)的位置,对称高位移到对称低位

n >>>= 1 向右移动1位 ,(相当于后面可以取后面的低位)

官方的题解里面是分治的方法,采用掩码的方式,采用2,4,8位等等来进行换位,用的是分治法来反转二进制位。比之前的循环方法更快

67. 二进制求和 - 力扣(LeetCode)

java 复制代码
class Solution {
    public String addBinary(String a, String b) {
        StringBuilder result = new StringBuilder();

        int i = a.length() -1;
        int j = b.length() - 1;

        int carry = 0;

        while(i >= 0 || j >= 0 || carry >0){
            int digitA = (i >= 0) ? a.charAt(i) - '0' :0;
            int digitB = (j >= 0) ? b.charAt(j) -'0' :0;

            int sum = digitA + digitB +carry;
            result.append(sum %2);

            carry = sum/2;

            i--;
            j--;
        }
        return result.reverse().toString();
    }
}

可以用栈的方法

相关推荐
颜酱6 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
架构师沉默10 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
zone773911 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
CoovallyAIHub14 小时前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub14 小时前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub14 小时前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
兆子龙14 小时前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法
后端AI实验室15 小时前
我把一个生产Bug的排查过程,交给AI处理——20分钟后我关掉了它
java·ai
凉年技术17 小时前
Java 实现企业微信扫码登录
java·企业微信
狂奔小菜鸡18 小时前
Day41 | Java中的锁分类
java·后端·java ee