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

    class Solution {
        public List<Integer> addToArrayForm(int[] A, int K) {
            // 初始化参数
            List<Integer> res = new ArrayList<Integer>();
            int n = A.length;
    
            // 1. 从后往前逐位相加
            for(int i = n - 1;i >= 0;i--){
                // 1.1 逐位相加
                int sum = A[i] + K % 10;         // 每次重置sum
                K /= 10;    
                // 1.2 处理两位相加 进位的情况
                if(sum >= 10){
                    K++;                        // 进位到K的末尾
                    sum -= 10;                  // 进位清掉
                }
                // 1.2 当前相加的结果 添加到结果集
                res.add(sum);
            }
    
            // 2. K的数字长度大于数组的数字长度
            for(;K > 0;K /= 10){                // 每次K左移一位
                res.add(K % 10);                // 添加到结果集
            }
    
            // 3. 将结果集翻转即是所求答案
            Collections.reverse(res);
            return res;
        }
    }

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

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

    思路就是按位相加,每次K往前移动一位就/10,取出来的位数是K%10找到末尾一位,最后的遍历加k%10针对k长度大于数组

  • 相关阅读:
    rest framework 之前
    python之psutil
    可持久化并查集总结
    复数学习
    主席树总结
    点分治题单(来自XZY)
    Tarjan&2-SAT 总结
    AC自动机题单
    网络流题目详讲+题单(入门版)(持续更新中......)
    网络流题目详讲+题单(提高版)(持续更新中......)
  • 原文地址:https://www.cnblogs.com/jieyi/p/14313394.html
Copyright © 2011-2022 走看看