【Leetcode 做题学算法周刊】第四期
首发于微信公众号《前端成长记》,写于 2019.11.21 背景 本文记录刷题过程中的整个思考过程,以供参考。主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 67.二进制求和 69.x的平方根 70.爬楼梯 83.删除排序链表中的重复元素 88.合并两个有序数组 Easy 67.二进制求和 题目地址 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0 。 示例: 输入: a = "11", b = "1" 输出: "100" 输入: a = "1010", b = "1011" 输出: "10101" 题目分析设想 这道题又是一道加法题,所以记住下,直接转数字进行加法可能会溢出,所以不可取。所以我们需要遍历每一位来做解答。我这有两个大方向:补0后遍历,和不补0遍历。但是基本的依据都是本位相加,逢2进1即可,类似手写10进制加法。 补0后遍历,可以采用先算出的位数推入数组最后反转,也可以采用先算出的位数填到对应位置后直接输出 不补0遍历,根据短数组的长度进行遍历,长数组剩下的数字与短数组生成的进位进行计算 查阅他人解法 Ⅰ.补0后遍历,先算先推 代码: /** * @param {string} a * @param {string} b * @return {string} */ var