美文网首页
66. 加一

66. 加一

作者: 王侦 | 来源:发表于2022-10-02 07:59 被阅读0次

    题目地址(66. 加一)

    https://leetcode.cn/problems/plus-one/

    题目描述

    给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
    
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
    
    你可以假设除了整数 0 之外,这个整数不会以零开头。
    
    

    前置知识

    公司

    • 暂无

    思路

    关键点

    • 从右往左找到最后一个连续的9,下一位非9,直接+1返回
    • 如果没有找到,说明全是9,则直接新建一个数组,将最高位置为1,直接返回

    代码

    • 语言支持:Go

    Go Code:

    
    func plusOne(digits []int) []int {
        n := len(digits)
        for i := n - 1; i >= 0; i-- {
            if digits[i] != 9 {
                digits[i]++
                for j := i + 1; j < n; j++ {
                    digits[j] = 0
                }
                return digits
            }
        }
        digits = make([]int, n + 1)
        digits[0] = 1
        return digits
    }
    
    

    复杂度分析

    令 n 为数字位数。

    • 时间复杂度:O(n)
    • 空间复杂度:最坏情况为O(n)

    相关文章

      网友评论

          本文标题:66. 加一

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