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

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

问题描述:

image.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)]



image.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:逆序输出


image.png



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


目录
相关文章
|
3月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
114 2
|
3月前
|
Python
【Leetcode刷题Python】53. 最大子数组和
LeetCode第53题"最大子数组和"的Python解决方案,利用动态规划的思想,通过一次遍历数组并维护当前最大和以及全局最大和来求解。
107 2
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 03. 数组中重复的数字
解决剑指Offer题目 "数组中重复的数字" 的Python实现方法,通过使用字典来记录数组中每个数字的出现次数,快速找出重复的数字。
39 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
69 10
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
87 4
|
2月前
|
存储 Go C语言
Python 的整数是怎么实现的?这篇文章告诉你答案
Python 的整数是怎么实现的?这篇文章告诉你答案
58 7
|
3月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
158 8
|
3月前
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
45 8
|
3月前
|
存储 缓存 C语言
|
3月前
|
存储 测试技术 Python
Python 数组和列表有什么区别?
【8月更文挑战第29天】
420 4