题目
整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。
例如,对于 num = 1321 ,数组形式是 [1,3,2,1] 。
给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num + k 的 数组形式 。
示例 1:
输入:num = [1,2,0,0], k = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234
分析
可以从尾开始往前遍历数组,需要处理好每位的加法,超过10以及不超过10的情况,超过10会有进位位
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class dddtoArrayFormofInteger {
public static void main(String[] args) {
int[] arr = {1,2,0,0};
List<Integer> brr = getPlus(arr,34);
for(int i = 0;i<brr.size();i++) {
System.out.println(brr.get(i));
}
}
public static List<Integer> getPlus(int[] arr,int k) {
int n = arr.length - 1;
int count = 0;
int data = 0;
List<Integer> lis = new ArrayList();
for(int i = n;i>=0;i--) {
if(i == n) {
data = arr[i] + k;
} else {
data = arr[i] + count;
}
if(data > 10) {
lis.add(data % 10);
count = data / 10;
} else {
lis.add(data);
count = 0;
}
data = 0;
}
while(count > 0) {
lis.add(count % 10);
count = count / 10;
}
Collections.reverse(lis);
return lis;
}
}