zoukankan      html  css  js  c++  java
  • Add Binary

    https://leetcode.com/problems/add-binary/#/description

    思路是把问题泛化成一个二进制carry 上浮的操作。比如从最低位开始,设置一个进位值,比如3,然后按照二进制的法则对这个carry 进行进位操作,既从低位到高位依次上浮,直到carry 为0 为止。

    有了这个泛化的操作,那两个二进制值相加不过就是把其中一个当成carry。

    var addBinary = function(a, b) {
        var target = null;
        var add = null;
        if (a.length > b.length) {
            target = a;
            add = b;
        } else {
            target = b;
            add = a;
        }
    
        var res = '';
        var carry = 0;
        var j = add.length - 1;
        for (var i = target.length - 1; i >= 0 || carry > 0; i--) {
            var v = 0;
            if (i >= 0) {
                var v = parseInt(target[i]);
                if (j >= 0) carry += parseInt(add[j]);
            }
    
            var d = (carry + v) % 2;
            carry = parseInt((carry+v) / 2);
            res = d + res;
            j--;
        }
        return res;
    };
  • 相关阅读:
    Java之final关键字
    Java之代码块
    Java之单例设计模式
    Java之数组
    python基础知识第九篇(函数)
    css--属性
    css-选择器
    css--引入css的3种方法
    html--多选
    python-列表--处理
  • 原文地址:https://www.cnblogs.com/agentgamer/p/6930153.html
Copyright © 2011-2022 走看看