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