难度:简单。
考虑好各种情况就行。
class Solution {
public:
vector<int> addToArrayForm(vector<int>& A, int K) {
if(K == 0)return A;
int A_num = A.size();
int temp = 0;
int a_index = A_num - 1;
int m = K;
for(int i = 0; i < 5; i++){
int n = m % 10;
int sum = n + temp;
if(a_index >= 0){
sum += A[a_index];
if(sum > 9){
A[a_index] = sum % 10;
temp = 1;
a_index--;
}
else{
A[a_index] = sum;
a_index--;
temp = 0;
}
}
else{
if(sum > 9){
A.insert(A.begin(), sum % 10);
temp = 1;
}
else{
A.insert(A.begin(), sum);
temp = 0;
}
}
m = m / 10;
if(m == 0)break;
}
if(temp == 0)return A;
for(int i = a_index; i >= 0; i--){
int sum = A[i] + temp;
if(sum > 9){
A[i] = sum % 10;
temp = 1;
}
else{
A[i] = sum;
temp = 0;
}
}
if(temp == 1)A.insert(A.begin(), 1);
return A;
}
};

这篇博客介绍了如何使用C++实现Solution类,处理将整数K加到给定的数组表示法中,同时保持数组形式。通过迭代和位操作处理每一位相加,确保不超过10并可能需要插入新元素。
448

被折叠的 条评论
为什么被折叠?



