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();
    }
}

可以用栈的方法

相关推荐
南部余额1 分钟前
RabbitMQ 进阶:延迟队列完全指南
java·分布式·spring·rabbitmq
两片空白2 分钟前
数据容器集合set/frozenset
数据结构
phltxy3 分钟前
Spring AI Agents 智能体模式实战
java·人工智能·spring
凌波粒7 分钟前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle7 分钟前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
摇滚侠12 分钟前
MyBatis 入门到项目实战 特殊 SQL 的执行 34-37
java·sql·mybatis
浦信仿真大讲堂29 分钟前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠39 分钟前
PCL 生成三棱锥点云
c++·算法·最小二乘法
phltxy42 分钟前
Spring AI 可观测性与 Zipkin 实战
java·人工智能·spring
代码中介商1 小时前
跳表:高效查找的链表黑科技
数据结构