• 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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution {
    public:
        vector<int> addToArrayForm(vector<int>& A, int K) {
            
            int K_length=get_bit_length(K);//获取K的位数
            int B_length = max(int(K_length),int(A.size()));//获取B的位数
            vector<int> B(B_length);
            int apos=A.size()-1;
            int ksize=K_length;
            int add=0;
            int num;
    
                for(int i=B.size()-1;i >=0;i--){//把A+K保存入B
                    num=A[apos]+K%10+add;//每一位的和,两数相加加上进位
                    B[i]=(num)%10;
                    K/=10;
                    if(apos!=0)
                        apos--;
                    else
                        A[apos]=0;
                    if(num>9) //设置进位标志
                        add=1;
                    else
                        add=0;
                }
                if(add==1)//最高位位进位
                {
                    B.insert(B.begin(),1);
                }   
                return B;  
        }
        int get_bit_length(int c){//计算一个数的位数
            int K_length=0;
            while(c>0){
                c/=10;
                K_length++;
            }
            return K_length;
        }
    };
  • 相关阅读:
    内存溢出
    Spring-bean的循环依赖以及解决方式
    JUC中Lock和ReentrantLock介绍及源码解析
    RocketMQ阅读注意
    RocketMQ环境搭建
    HSF源码阅读
    最近找工作,有招JAVA开发的可以联系我,如果不嫌弃我2年前用C,也可以联系我
    Spring Extensible XML
    MySQL主主+Keepalived架构安装部署
    记录一则数据库死锁故障的分析过程
  • 原文地址:https://www.cnblogs.com/mydrizzle/p/12725627.html
Copyright © 2020-2023  润新知