美文网首页
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