【两数相加】python刷题记录

news2024/11/15 10:18:24

R3-链表-链表高精度加法

目录

递归法

迭代 

递归法

 l1.val+l2.val+carry,得到的和,%10为当前位存储的值,除以10为当前的进位值

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode],carry=0) -> Optional[ListNode]:
        #递归边界,如果l1,l2都是空结点
        if l1 is None and l2 is None:
            if carry:
                return ListNode(carry)
            return None
        if l1 is None:
            l1,l2=l2,l1
        s=carry+l1.val+(l2.val if l2 else 0)
        l1.val=s%10
        l1.next=self.addTwoNumbers(l1.next,l2.next if l2 else None,s//10)
        return l1

        

 

迭代 

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode],carry=0) -> Optional[ListNode]:
        #迭代法,感觉有点像模拟这个过程,创建链表,每次保存carry值
        #dummy是哨兵结点
        cur=dummy=ListNode()
        carry=0
        while l1 or l2 or carry:
            s=carry+(l1.val if l1 else 0)+(l2.val if l2 else 0)
            cur.next=ListNode(s%10)
            carry=s//10
            cur=cur.next
            if l1:
                l1=l1.next
            if l2:
                l2=l2.next
        return dummy.next

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC和Spring

1.AOP 1.基础内容 AOP是面向切面的的编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。 面向切面编程,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术(增强代码)&…

【开源项目】基于RTP协议的H264播放器

基于RTP协议的H264播放器 1. 概述2.工程3.测试4.小结 1. 概述 前面记录了一篇基于RTP协议的H264的推流器、接收器的实现过程,但是没有加上解码播放,这里记录一下如何实现解码和播放,也是在前面的基础之上实现的。前一篇的记录为【开源项目】…

完成QT上位机(八)

一. 正式开始设计界面 这一章节我们将完成QT上位机的设计,如果有同学对QtCreater的使用不太熟悉的,可以参考下面的链接 Qt 快速入门系列教程 Qt 快速入门系列教程 (gitbooks.io)https://wizardforcel.gitbooks.io/qt-beginning/content/ 二. 数据库处…

从零开始的MicroPython(五)PWM

上一篇:串口 文章目录 定义ESP32代码 定义 要理解一个定义,就要引申一个已经掌握的概念,PWM是什么?我们或许可以用“周期”的概念来理解。 高电平出现的占比是占空比。 PWM(脉冲宽度调制)是一种调节信号…

022.(附加)chromedriver编译-绕过selenium机器人检测

有小伙伴说使用selenium没能绕过机器人检测,盘他。 一、selenium简介 Selenium 是一个强大的工具,用于Web浏览器自动化,更常被用于爬虫但selenium需要通过webdriver来驱动chrome,每次运行selenium时,都要先找到对应版…

VMware Workstation17 安装 Ubuntu 操作系统

今天给伙伴们分享一下VMware Workstation17 安装 Ubuntu 操作系统 ,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维…

企业邮箱有哪些便捷功能

企业邮箱有哪些便捷功能?一、消息流实现社交式互动;二、邮件委托轻松分担工作;三、音视频通话即时沟通;四、邮件定时发送与提醒确保重要信息不遗漏;五、邮件召回与延迟发送提供反悔机会;六、离线阅读邮件实现无缝工作…

QtQuick Text-对齐方式

属性 Text项目 的horizontalAlignment和verticalAlignment分别用来设置文本在 Text项目区域中的水平、垂直对齐方式。 默认文本在左上方。 属性值有: horizontalAlignment Text.AlignLeftText.AlignRightText.AlignHCenterText.Justify verticalAlignment Text.…

(纯分享01)初学AI,怎样才算是有效提示问题呢?

前言 你有没有想过,为什么有些人似乎能从 AI 工具中获得惊人的效果,而其他人却举步维艰?好用的永远在别人那,而自己的人工智能AI怎么这么像"人工智障"呢?有没有经常被气到呢哈哈哈哈? 问题的答…

Python IDLE修改JetBrains Mono字体教程

自己在使用Python IDLE过程中发现原生字体不好看,不美观。尤其是对于部分字符,l打印不美观,区别不明显。于是诞生了换字体的想法。 教程简单,快速,3-5分钟不到即可完成。 目录 选型 下载安装 使用 选型 考虑到代码…

网络空间资产测绘:为安全防护“画出”实时“地图”

网络空间已成为继海、陆、空、天之后的“第五疆域”,对其空间布局进行摸排并形成“地图”,是维护网络空间安全的基础性工作。近日在2024全球数字经济大会上发布的DayDayMap全球网络空间资产测绘平台,能为用户提供全面、精准、实时的全球网络空…

Go语言中获取tls中的KeyLogFile,用于dubug

文章目录 获取KeyLogFile示例代码:1. client2. client3. 效果 获取KeyLogFile tls.config自带了接口,所以配置的时候只需要打开就行,以客户端为例 keylogfile 是一个 io.Writer 开了这个就自动使用了 keyLogFile, _ : os.OpenFile(keyLogFi…

C#开发编程软件下载安装

1、Visual Studio 2022社区版下载 2、开始安装 3、安装进行中 。。。。

基于edge和bwmorph函数的两种图像边缘检测方法及应用

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。本文给出edge和bwmorph两个函数进行边缘检测的基本用法,并给出一个应用示例。 一、edge和bwmorph函数简介 edge和bwmorph是MATLAB中用于图像处理边缘检测…

Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记

如何基于开源大模型进行优化 1. Prompt工程 大模型可能知道问题相关,但是我们问的不清楚。所以需要根据我们的提问,构建出一个比较结构化的、大模型易于理解和分析的提问内容。 在下方的第二个资料里,我才知道有这么多Prompt的构建思路&…

认真学习JVM中类加载过程

本文我们总结JVM中类加载器子系统关于类加载过程,这里默认是Oracle的Hotspot。 【1】类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载&#xff0…

软件测试——测试分类(超超超齐全版)

为什么要对软件测试进行分类 软件测试是软件⽣命周期中的⼀个重要环节,具有较⾼的复杂性,对于软件测试,可以从不同的⻆度加以分类,使开发者在软件开发过程中的不同层次、不同阶段对测试⼯作进⾏更好的执⾏和管理测试的分类⽅法。…

见证中国数据库的崛起:从追赶到引领的壮丽征程《一》

见证中国数据库的崛起:从追赶到引领的壮丽征程《一》 一、追溯历史:中国数据库发展的艰难起步萌芽阶段(20世纪70年代末-80年代初)起步阶段(20世纪80年代中期-90年代初)发展阶段(20世纪90年代中期…

实验2-1-7 输出倒三角图案

本题要求编写程序&#xff0c;输出指定的由“*”组成的倒三角图案。 输出格式: * * * ** * ** **程序&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {for (int i 0; i < 4; i) {for (int k 0; k < i; k) {printf(" &qu…

YOLO:目标检测模型的训练和推理(简单Demo)

作者&#xff1a;CSDN _养乐多_ 本文将介绍如何训练和推理YOLO模型。使用coco8数据集以一个简单的demo进行示例。 文章目录 一、准备1.1 模型类型1.2 环境配置 二、模型训练和推理三、讨论 一、准备 1.1 模型类型 YOLO8模型性能数据&#xff1a; ModelSize (pixels)mAPval…