加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
// 1、最后一位小于9,直接加1返回
// 2、最后一位大于9,第一位小于9,不需进位。第一位大于9,需要进位

var plusOne = function(digits) {
    let first = digits[0]
    if(digits[digits.length-1]<9){//如果最后一个值小于9,直接加一返回数组
        digits[digits.length-1]+=1
        //console.log('digits0 '+digits)
        return digits
    }else{
        for(let i=digits.length-1;i>=0;i--){
            if(digits[i]==9){ //需要进一
                digits[i]=0
                if(i==0&&first==9){//直到首位为9
                    digits.unshift(1)
                    //console.log('digits2 '+digits)
                    return digits
                }
            }else{ //不需进一
                digits[i]+=1
                //console.log('digits1 '+digits)
                return digits
            }
        }
    }
};

//初始化一个状态nextType,为true则循环元素是加1,为false则跳出循环直接返回值。
//如果当前元素加1后大于9则carry为true,再把当前元素的余数赋给当前元素,
//循环结束后,若nextType为true则,向数组digits前进位1

var plusOne = function(digits) {
    let nextType = true //初始化一个状态
    for(let i=digits.length-1;i>=0;i--){ //遍历数组
        if(nextType){//如果状态为true
            digits[i]++ //元素加一
            nextType = digits[i]>9 
            //重置nextType状态, 如果当前元素大于9则nextType为true下一个元素可加一,反之不加一
            digits[i] = digits[i]%10//当前元素取余
        }else{//如果状态为false直接返回
            console.log(digits)
            return digits
        }
        
    }
    if(nextType){//如果遍历结束后首位大于9,则数组首部添加一个元素1
        digits.unshift(1)
    }
    console.log(digits)
    return digits

}
plusOne([1,2,3])
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 加一 题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组...
    SunnyQjm阅读 129评论 0 1
  • 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一 https://leetcode-cn....
    Shimmer_阅读 264评论 0 1
  • LeetCode --- 字符串、数组简书专栏:https://www.jianshu.com/nb/417965...
    KM_0d16阅读 278评论 0 0
  • 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每...
    刻苦驴哝阅读 175评论 0 0
  • 给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。 最高位数字存放在数组的首位, 数组中每个元...
    尼小摩阅读 423评论 0 0

友情链接更多精彩内容