美文网首页
javascript-字节跳动,腾讯大厂面试专题——力扣(66)

javascript-字节跳动,腾讯大厂面试专题——力扣(66)

作者: 纯粹的少年 | 来源:发表于2020-09-16 08:12 被阅读0次

    题目

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
    你可以假设除了整数 0 之外,这个整数不会以零开头。
    示例 1:
    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/plus-one
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解题思路

    • 首先我们开始思考的时候,思考了一个错误的方法。
      • 我们把这个数组转换成一个字符串,在转换成整数。
      • 但是这里没有考虑到取整的最大范围,如果超出了范围,后面的数字自动替换成0。
    • 这里展示正确的思路。
      • 首先我们把给定数组的最后一项加一
      • 然后这时可能出现,最后一项是9,然后会进行进位。
      • 这之后我们采取while循环,检索数组,如果数组中有10的话,我们就把当前项归为0,然后使前一项进行加一操作。
      • 但是我们给定的数组可能出现[9,9,9,9]的情况,如果出现这种情况,我们就把当前项归0,在数组前面添加1,就可以返回数组了。
    var plusOne = function(digits) {
        digits[digits.length - 1] += 1;
        while (digits.indexOf(10) !== -1) {
            var current = digits.indexOf(10)
            digits[current] = 0;
            if (current === 0) {
                digits.unshift(1); 
                return digits;
            }
            digits[current - 1] += 1;
        }
        return digits
    };
    

    相关文章

      网友评论

          本文标题:javascript-字节跳动,腾讯大厂面试专题——力扣(66)

          本文链接:https://www.haomeiwen.com/subject/ehgxyktx.html