题目:
解答:
将A的从低位(尾部数字)与K相加,同时K每次都要丢弃个位数字,然后与A的下一个数字相加(此思路参考评论区大佬做的)。
1 class Solution { 2 public: 3 vector<int> addToArrayForm(vector<int>& A, int K) 4 { 5 vector<int> result; 6 7 int lastNum = K; 8 int i = A.size() - 1; 9 10 while(i>=0||lastNum>0) 11 { 12 //对应位相加 13 if(i>=0) 14 { 15 lastNum += A[i--]; 16 } 17 18 //尾部数字添加到result中,同时k需要丢弃尾部数字 19 result.push_back(lastNum%10); 20 lastNum/=10; 21 } 22 //注意:要反转,因为低位数字都排在数组的前面了,所以需要反转 23 reverse(result.begin(),result.end()); 24 return result; 25 } 26 };