zoukankan      html  css  js  c++  java
  • [LeetCode] 989. 数组形式的整数加法

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

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

    示例 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
    示例 3:

    输入:A = [2,1,5], K = 806
    输出:[1,0,2,1]
    解释:215 + 806 = 1021
    示例 4:

    输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
    输出:[1,0,0,0,0,0,0,0,0,0,0]
    解释:9999999999 + 1 = 10000000000
     

    提示:

    1 <= A.length <= 10000
    0 <= A[i] <= 9
    0 <= K <= 10000
    如果 A.length > 1,那么 A[0] != 0

    不能转换成数字相加,用long试过,也有用例会溢出

        public List<Integer> addToArrayForm(int[] num, int k) {
            if (num == null)
                return new ArrayList<>();
            int carry = 0;
            List<Integer> res = new LinkedList<>();
            for (int i = num.length - 1; i >= 0 || k > 0; i--) {
                int n1 = i >= 0 ? num[i] : 0;
                int n2 = k != 0 ? k % 10 : 0;
                int sum = (n1 + n2 + carry);
                carry = sum / 10;
                res.add(0, sum % 10);
                k /= 10;
            }
            if (carry != 0)
                res.add(0, carry);
            return res;
        }
    Please call me JiangYouDang!
  • 相关阅读:
    500 多个 Linux 命令文档搜索
    C++ 字符串基本操作
    串的模式匹配算法
    查看、启动、关闭防火墙
    天润融通面试
    LeetCode 169. 求众数
    【面试题】人人车一次面试总结
    一个完整的 JS 身份证校验代码
    oracle多表查询
    百度地图的Icon
  • 原文地址:https://www.cnblogs.com/luckygxf/p/14876162.html
Copyright © 2011-2022 走看看