美文网首页
66. Plus One

66. Plus One

作者: sarto | 来源:发表于2022-04-13 10:05 被阅读0次

    题目

    给定一个数组表示的 大整数,数组中的每个元素表示第 i 位。数字按从左到右的顺序按最高有效位和最低有效位排序。并且不包含任何前导0。
    将这个数组+1并返回。

    解析

    这个数组大概率是不会扩容的,只有一种扩容的情况就是全为 9。

    伪代码

    flag:=1
    for i>=0 && flag != 1
      rst:=digits[i]+1
      flag = rst/10
      digits[i] =rst%10
    if flag == 1
      digits = append(1, digits...)
    return digits
    

    for

    代码

    func plusOne(digits []int) []int {
        flag:=1
        for i:=len(digits)-1; i>=0 && flag==1; i-- {
            rst:=digits[i]+1
            flag=rst/10
            digits[i]=rst%10
        }
        if flag == 1 {
            digits = append([]int{1}, digits...)
        }
        return digits
    }
    
    image.png

    后记

    1. go 语法如此规范,数字只能判断相等,不能用来代替 bool
    2. append 函数相当实用

    相关文章

      网友评论

          本文标题:66. Plus One

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