当前位置:   article > 正文

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。_给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一

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

示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。

思路

重要是看数组数是9的情况,比如99,999之类,这样的话+1会进一,数组长度也会增加,变成100,1000;
设置循环从后往前看,判断当前数组的数字是9的情况。如果不是9,直接加1并且返回数组;如果是9的话让当前位直接变成0,接着循环判断9的情况。
如果是类似于{‘9’,‘9’,‘9’}这种情况,我们还要建立一个新数组,新数组的长度要比输入的数组长度大一位,且第一位是1,后面都是0.

代码设计
class Solution {
    public int[] plusOne(int[] digits) {
        int len=digits.length;
        for(int i=len-1;i>=0;i--){
            if(digits[i]==9){
                digits[i]=0;
            }else{
                digits[i]+=1;
                return digits;
            }
        }
            int[] new_digits=new int[digits.length+1];
            new_digits[0]=1;
            return new_digits;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
总结

我本来也想过这种方法,就是将这个整型数组转化成相应的数字,其次再进行加1运算,最后转成数组。不过来回转化有些麻烦,不过能写出来,但是我觉得没有上面写的这个方法好。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/63473
推荐阅读
相关标签
  

闽ICP备14008679号