[LeetCode By Go 84]66. Plus One

题目

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.

You may assume the integer do not contain any leading zero, except the number 0 itself.

The digits are stored such that the most significant digit is at the head of the list.

解题思路

用一个0-9的数字组成的数组代表一个正整数,将这个正整数加1
个位加1后,需要从个位开始逆序遍历这个数组,更新每一位的值,注意进位

代码

func plusOne(digits []int) []int {
    len1 := len(digits)

    digits[len1 - 1] = digits[len1 - 1] + 1
    var carry int
    if digits[len1 - 1] == 10 {
        carry = 1
        digits[len1 - 1] = 0
    }


    for i := len1-2; i >= 0; i-- {
        digits[i] = carry + digits[i]
        if digits[i] == 10 {
            digits[i] = 0
            carry = 1
        } else {
            carry = 0
        }
    }

    if carry == 1 {
        var ret []int
        ret = append([]int{carry}, digits...)
        return ret
    } else {
        return digits
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • JavaScript 正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为rege...
    BaibaiWang阅读 333评论 1 1
  • 有一次和同事老A一起吃饭,谈起发朋友圈这个问题,他说他很早以前就不发了,现在偶尔刷刷。以下是我和他的对话: “干嘛...
    陆大总监阅读 1,308评论 0 2
  • 如何实现有效社交? ①听众档案 我们在进行社交的时候,需要对我们的谈话对象有个大概的认知和了解,这样我们才能做到比...
    喵月嗅雪阅读 172评论 2 7
  • 破碎的风 撕裂的夜 摇摇欲坠的叶 冰冷坚硬的墙 未灭的烟头带来一丝光芒 醉迷的流浪者踏着混乱的步伐走向远方 孤独与...
    唉_______阅读 254评论 0 0