LeetCode——第66題:プラス1
タイトル:
非負の整数からなる非空の配列を指定し、その数に1を加えて新しい配列を返します.
最上位の数値は配列の先頭に格納され、配列内の各要素には1つの数値しか格納されません.
整数0を除いて、この整数はゼロで始まると仮定できます.
例1:
入力:[1,2,3]出力:[1,2,4]解釈:入力配列は数値123を表す.
例2:
入力:[4,3,2,1]出力:[4,3,2,2]解釈:入力配列は数字4321を表す.
コード:
非負の整数からなる非空の配列を指定し、その数に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]+",");
}
}
}