数据结构|Leetcode——989. 数组形式的整数加法

题目: 【数据结构|Leetcode——989. 数组形式的整数加法】对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。
提示:

  1. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 9
  3. 0 <= K <= 10000
  4. 如果 A.length > 1,那么 A[0] != 0
示例 1: 输入:A = [1,2,0,0], K = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234

示例 2: 输入:A = [2,7,4], K = 181 输出:[4,5,5] 解释:274 + 181 = 455

题解: 由于A的长度太大,所以没法用整型来进行计算处理。在网上白嫖到一个方法,就是让输入的K与数组A的最后一位数进行相加,然后将取模得到的数remind放入到答案数组中,然后K整除10,反复操作。但是可能会出现数值K的值会比A的“值”要大,所以要留意一下最后K是否需要插入。(在一开始使用vector的insert方法时,发现时间复杂度太高了,所以需要修改)
代码
class Solution {public: vector addToArrayForm(vector& A, int K) {vector ans; int len = A.size(); for(int i = len - 1; i >= 0; i--){K += A[i]; int remind = K % 10; ans.insert(ans.begin(),remind); K /= 10; }while(K){int remind = K % 10; ans.insert(ans.begin(),remind); K /= 10; } return ans; } };

    推荐阅读