leetcode66:加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

=========Python=========

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        i = len(digits) - 1
        carry = 1
        while i >= 0:
            if digits[i] + carry > 9:
                digits[i], carry = (digits[i] + carry) % 10, (digits[i] + carry) // 10
            else:
                digits[i] += carry
                carry = 0
                break
            i -= 1
        if carry > 0:
            return [carry] + digits
        else:
            return digits
                 

==========Go==========

func plusOne(digits []int) []int {
    var result []int
    carry := 0
    for i := len(digits) - 1; i >= 0; i--{
        digits[i] += carry
        carry = 0
        if i == len(digits) - 1{
            digits[i] ++
        }
        if digits[i] == 10{
            carry = 1
            digits[i] = digits[i] % 10
        }
    }
    if carry == 1{
        result = make([]int, 1)
        result[0] = 1
        result = append(result, digits...)
    } else {
        result = digits
    }
    return result
}

 

posted @ 2020-08-12 21:45  LinBupt  阅读(99)  评论(0编辑  收藏  举报