LeetCode——第66題:プラス1

3274 ワード

タイトル:
非負の整数からなる非空の配列を指定し、その数に1を加えて新しい配列を返します.
最上位の数値は配列の先頭に格納され、配列内の各要素には1つの数値しか格納されません.
整数0を除いて、この整数はゼロで始まると仮定できます.
例1:
入力:[1,2,3]出力:[1,2,4]解釈:入力配列は数値123を表す.
例2:
入力:[4,3,2,1]出力:[4,3,2,2]解釈:入力配列は数字4321を表す.
コード:
package leetCode;

/**
 * 2018.7.19  1
 * 
 * @author dhc
 *
 */
public class SixtySix {
    //               。   1,       ,        ,      
    //  :        ,        ,               ,           ,      
    public static int[] plusOne(int[] digits) {
        int[] re = new int[digits.length];
        re[digits.length-1] = 1;
        for (int i = digits.length-1; i >= 0; i--) {
            re[i] = re[i]+digits[i];
            if(re[i] == 10&&i!=0) {
                re[i-1] = 1;
                re[i] = 0;
            }
        }
        if(re[0] == 10) {
            re[0] = 0;
            int[] tem = new int[digits.length+1];
            tem[0] = 1;
            for (int i = 1; i < tem.length; i++) {
                tem[i] = re[i-1];

            }
            re = tem;
        }
        return re;
    }
    public static void main(String[] args) {
        int[] digits = new int[] {9};
        int[] re = plusOne(digits);
        for (int i = 0; i < re.length; i++) {
            System.out.print(re[i]+",");
        }

    }
}