LeetCode第67题二进制求和

继续打卡算法题,今天学习的是LeetCode第67题二进制求和,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

哈哈,虽然是简单题,我们也要好好看看题目,学习一些解题技巧,提升我们的解题思维能力。

二进制求和,掌握二进制相加的规则比较重要,二进制相加,逢二进一,其他情况没有进位。知道这好办了,我们从最后一位遍历依次相加即可。

本题解题技巧

1、掌握二进制相加的算法规则。

编码解决

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

        for(int i = a.length() - 1, j = b.length() - 1;i >= 0 || j >= 0; i--, j--) {
            int sum = ca;
            //如果任意加数遍历结束,补0
            sum += i >= 0 ? a.charAt(i) - '0' : 0;
            sum += j >= 0 ? b.charAt(j) - '0' : 0;
            ans.append(sum % 2);
            //进位
            ca = sum / 2;
        }
        //是否有进位
        ans.append(ca == 1 ? ca : "");
        //结果反转
        return ans.reverse().toString();
    }
}

总结

1、二进制在算法中,处理数据的运算很常见,本题算法相加是最基础的算法法则,回忆一下,记录下来,以备不时之需。

相关推荐
IT_陈寒6 小时前
Vite5.0性能翻倍秘籍:7个极致优化技巧让你的开发体验飞起来!
前端·人工智能·后端
Edward.W6 小时前
用 Go + HTML 实现 OpenHarmony 投屏(hdckit-go + WebSocket + Canvas 实战)
开发语言·后端·golang
Miraitowa_cheems6 小时前
LeetCode算法日记 - Day 34: 二进制求和、字符串相乘
java·算法·leetcode·链表·职场和发展
南囝coding6 小时前
Claude 封禁中国?为啥我觉得是个好消息
前端·后端
wan5555cn6 小时前
AI生成内容的版权问题解析与实操指南
人工智能·笔记·深度学习·算法·音视频
六边形工程师7 小时前
Docker安装神通数据库ShenTong
后端
六边形工程师7 小时前
快速入门神通数据库
后端
重生成为编程大王7 小时前
FreeMarker快速入门指南
java·后端
Dear.爬虫7 小时前
Golang的协程调度器原理
开发语言·后端·golang
元闰子7 小时前
怎么用CXL加速数据库?· SIGMOD'25
数据库·后端·面试