数组形式的整数加法 Python板子

简介: 数组形式的整数加法 Python板子

问题描述:


b49fe0e498014293a425855329297126.png下面提供两种解决办法  

方法一 :数组 数字化 返回两数相加 优点实现起来代码简单 缺点 效率低下

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        s=0
        n=len(A)-1
        while n>=0:
            s+=A[len(A)-n-1]*10**n
            n-=1
        return [int(i) for i in str(s+K)]

6c9f5472f3d840bbb0d61472e4bc3a97.png

下面进行优化:

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        l1=len(A)-1
        add=0#进制
        answer=[]
        while l1>=0 or K!=0:#只要数组没有被遍历完
            x=0 if l1<0 else A[l1]
            y=0 if K==0 else K%10
            sum=x+y+add
            add=sum//10
            answer.append(sum%10)
            l1-=1
            K//=10
        if add>0:answer.append(add)
        return answer[::-1]

代码分析:用add储存进制数,一开始同时从A和K的最右端遍历


细节1:大可不必再创建一个数组K,可以直接利用%和//的特点,提高时间效率


细节2:如果l1<0即意味着A[l1]默认为0了。实际上sum=A[l1]+K%10+add


从数学角度讲 l1>=0 sum的表达式的确没错 可是当l1<0 便首先报错 因而就无所谓执行到sum这一步了 这是由于A[l1]是一种访问列表的操作 前提就是不能越界 因而 使用两个变量X,Y来替代作为每次循环要执行的参数,换句话说,在写代码的过程中,要合理引入变量,当然直接访问也是一个不错的选择如果不报错


细节3:当执行到最前端的时候 比如 是8+3 那么answer的最后一位保存了‘1’,而进制1并没有保存下来,因为我们每次append进去的都是取余后的结果。所以需要对最前端另外处理,如果add>0(说明满十)就append add


细节4:逆序输出

8ae53e7809a5452bbfaab0332d7f6b15.png


我是小郑 期待和你一起进步😀


相关文章
|
1月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
257 0
|
8月前
|
Python Windows
[oeasy]python076_int这个词怎么来的_[词根溯源]整数类型_int_integer_touch
本文探讨了“int”一词的起源及其与整数类型的关联。通过词根溯源,揭示“int”来源于“integer”,意为“完整的数”,与零碎的分数相对。同时分析了相关词汇如“tact”(接触)、“touch”(触摸)及衍生词,如“tangential”(切线的)、“intagible”(无形的)和“integral”(完整的、不可或缺的)。文章还结合编程语言特性,解释了Python作为动态类型、强类型语言的特点,并总结了整型变量的概念与意义。最后预告了后续内容,提供了学习资源链接。
254 11
|
8月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
141 4
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
369 10
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
413 4
|
存储 Go C语言
Python 的整数是怎么实现的?这篇文章告诉你答案
Python 的整数是怎么实现的?这篇文章告诉你答案
268 7
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
562 9
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
260 8
|
Python
ZZULIOJ-1022,三整数排序(Python)
ZZULIOJ-1022,三整数排序(Python)
|
Python
ZZULIOJ-1020,两整数排序(Python)
ZZULIOJ-1020,两整数排序(Python)

推荐镜像

更多