【leetcode】989. 数组形式的整数加法(add-to-array-form-of-integer)(模拟)[简单]

2023-05-16

链接

https://leetcode-cn.com/problems/add-to-array-form-of-integer/

耗时

解题:12 min
题解:8 min

题意

对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。

给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。

思路

模拟加法运算,因为可能存在进位,所以结果数组从低位到高位 push,计算完成后再翻转结果数组即可。 详见代码。

时间复杂度: O ( m a x ( A . l e n g t h , K . l e n g t h ) ) O(max(A.length, K.length)) O(max(A.length,K.length))

AC代码

class Solution {
public:
    vector<int> addToArrayForm(vector<int>& A, int K) {
        int n = A.size();
        vector<int> res;
        int i = n-1, carry = 0;
        while(i >= 0 || K > 0 || carry > 0) {
            int x = (i >= 0) ? A[i] : 0;
            int num =  x + K%10 + carry;
            res.push_back(num%10);
            carry = num/10;
            K /= 10;
            i--;
        }
        reverse(res.begin(), res.end());
        return res;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【leetcode】989. 数组形式的整数加法(add-to-array-form-of-integer)(模拟)[简单] 的相关文章

随机推荐