66. 加一

Posted lgz0921

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了66. 加一相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/plus-one/

思路:数组最后一位加1,然后如果等于10,就进位,接着前面的那一位加一,依次循环判断,直到有一位不等于10。如果循环到最高位,最高位还是10,那么就需要特殊处理一下了,即最前面加一位,也就是说数组长度加了一,加在数组最前面(这个值只能是1)。我是用ArrayList处理的,感觉方便一点~~~~

上代码:

class Solution {
    fun plusOne(digits: IntArray): IntArray {
        val result = ArrayList<Int>()
        var i = digits.size - 1
        digits[i] += 1
        while (i > 0 && digits[i] == 10) {
            digits[i] = 0
            digits[--i] += 1
        }
        if (i == 0 && digits[0] == 10) {
            digits[0] = 0
            result.add(1)
        }
        result.addAll(digits.toList())
        return result.toIntArray()
    }
}

 

以上是关于66. 加一的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode66. 加一(C++)

leetcode-----66. 加一

LeetCode 66. 加一(java)

LeetCode数组-10(66)-数组表示的数加一

leetcode算法66.加一

LeetCode刷题66-简单-加一