难度简单
对于非负整数 X
而言,X
的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231
,那么其数组形式为 [1,2,3,1]
。
给定非负整数 X
的数组形式 A
,返回整数 X+K
的数组形式。
思路:
按照已有的数组将待加的数字按位加入数组中(确保进位和数据)
若数字处理结束(为零),直接返回原数组;
反之利用数字剩余部分和修正后的原数组重构结果数组。
代码:
vector<int> addToArrayForm(vector<int>& A, int K) {
vector<int> ans;
int step=0,info=0,len=A.size();
for(int i=len-1;i>=0;--i){
step=K%10;
K/=10;
A[i]+=step+info;
info=A[i]/10;
A[i]%=10;
}
K+=info;
if(K==0) return A;
while(K!=0){
ans.push_back(K%10);
K/=10;
}
reverse(ans.begin(),ans.end());
for(int i=0;i<len;++i){
ans.push_back(A[i]);
}
return ans;
}