题目: 【数据结构|Leetcode——989. 数组形式的整数加法】对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。
提示:
- 1 <= A.length <= 10000
- 0 <= A[i] <= 9
- 0 <= K <= 10000
- 如果 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;
}
};
推荐阅读
- c++|Codeforces 693 D. Even-Odd Game
- 刷题记录|力扣周赛310场题解
- C++基础|C++实现Fibonacci数列
- Leetcode|Leetcode989: 数组形式的整数加法 (简单题)python3
- 补题大全|2021CCPC网络赛题解加总结
- 图卷积及图像超分辨率干货分享|基于TensorRT和C++推理的SOTA图像超分辨率网络
- Easy3D|VS2019编译配置Easy3D
- 数据结构与算法|数据结构学习笔记 6-1 手撕AVL树 与 LeetCode真题(Java)
- C++|算法-二叉树(在二叉搜索树中寻找节点)