赞
踩
示例 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运算,最后转成数组。不过来回转化有些麻烦,不过能写出来,但是我觉得没有上面写的这个方法好。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。