整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。
- 例如,对于
num = 1321,数组形式是[1,3,2,1]。
给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num + k 的 数组形式 。
class Solution {
public:
vector<int> addToArrayForm(vector<int>& num, int k) {
int n=num.size();
vector<int>ans;
//进位
int carry=0;
//遍历数组按位相加,进位不为0获i有效或k不为0都循环
for(int i=n-1;i>=0||k!=0||carry!=0;i--){
//和先等于进位
int sum=carry;
//如果i有效
if(i>=0){
//和加上num[i]
sum+=num[i];
}
//和加上k的最后一位
sum+=k%10;
//k去掉最后一位
k=k/10;
//进位为和去掉一位
carry=sum/10;
//将和的最后一位加到ans中
ans.push_back(sum%10);
}
//将ans逆序
reverse(ans.begin(),ans.end());
return ans;
}
};

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



