秋招突击——算法打卡——5/24——两数相加

问题描述
第一次实现代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        int addNumber = 0;// 表示进位
        ListNode* res = new ListNode();
        ListNode* curNode = res;
        while(l1 && l2){
            curNode->val = (l1->val + l2->val + addNumber) % 10  ;
            addNumber = (l1->val + l2->val) / 10;
            if( addNumber && !l1 && !l2){
                break;
            }
            curNode->next = new ListNode();
            curNode = curNode->next;
            l1 = l1->next;
            l2 = l2->next;
        }
        // 将剩余的列表都复制过去
        while(l1){
            curNode->val = (l1->val + addNumber) % 10  ;
            addNumber = l1->val / 10;
            if( addNumber && !l1){
                break;
            }
            curNode->next = new ListNode();
            curNode = curNode->next;
            l1 = l1->next;
        }
        while(l2){
            curNode->val = (l2->val + addNumber) % 10  ;
            addNumber = l2->val / 10;
            if( addNumber && !l2){
                break;
            }
            curNode->next = new ListNode();
            curNode = curNode->next;
            l2 = l2->next;
        }
        return res;
    }
};
  • 又很大的问题,不应该先判定数字,然后在判定是否生成对应的元素吗?整的现在,一个样例都过去不去。
    在这里插入图片描述
修改之后的代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        auto dummy = new ListNode(),cur = dummy;   // 增加一个伪头节点,方便具体的操作
        int addNum = 0;
        while( addNum || l1 || l2){
            if(l1) addNum += l1->val,l1 = l1->next;
            if(l2) addNum += l2->val,l2 = l2->next;
            cur->next = new ListNode(addNum % 10);
            cur = cur->next;
            addNum /= 10;
        }
        return dummy->next;
    }
};
分析总结
  • 这里声明了一个伪头节点,方便操作
  • 思路清晰一点,分析清楚了,再继续往下做。
  • 还是做少了,指针如何访问下一个节点都写错了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能的明天:机器学习与自动化的演进之旅

方向一:技术革新与行业应用 现状分析: 当前的IT行业正处于一个技术革新的高峰期。量子计算虽然还处于研究和开发阶段,但其潜力巨大,未来可能在药物发现、材料科学和复杂系统模拟等领域带来突破。虚拟现实(VR&#xff…

Windws MySQL 8.4 LTS的安装(保姆级教程)

Windws MySQL 8.4 LTS的安装(保姆级教程) 一、Mysql版本二、Mysql下载三、Mysql安装3.1 Mysql安装3.2 Mysql配置 四、Mysql环境变量配置五、验证Mysql 一、Mysql版本 美国时间 2024 年 4 月 30 日,Oracle正式发布了MySQL数据库8.0.37版本的更…

DFA 算法

为什么要学习这个算法 前一段时间遇到了瓶颈,因为词库太多了导致会有一些速度过慢,而且一个正则表达式已经放不下了,需要进行拆分正则才可以。 正好我以前看过有关 dfa 的介绍,但是并没有深入的进行研究,所以就趁着周…

EM算法求解高斯混合模型参数公式推导

高斯混合模型介绍 高斯混合模型(Gaussian Mixture Model,简称GMM)是一种经典的概率模型,被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模,每个高斯分布对应于数据中的一个子…

【Unity2D:C#Script】实现角色射击功能

一、创建子弹预制体 1. 创建子弹预制体 2. 调整图片大小、层级 二、为子弹添加碰撞体积 1. 添加Box Collider 2D、Rigidbody 2D组件 2. 锁定z轴 三、编辑敌人脚本 注:在以下代码中,只显示本章节新增的代码,省略原有的代码 1. 为敌人添加生…

智能无网远控再升级 向日葵Q2Pro升级版发布

无网或者内网设备也想要进行远程控制,是不是听上去有些天方夜谭了?其实这类特种设备的远程控制需求是非常强的,比如医疗/工控设备的远程运维、使用指导教学等等。 实际上,只要这类设备有屏幕,支持可视化的桌面操作&am…

Linux - 整理工作中常用的 Linux 命令(目录、文件、系统、进程、网络)持续更新~

目录 一、Linux 目录结构 二、Linux 中的常用指令 2.1、目录命令 cd 切换目录 pwd 打印当前所在目录 ls 展示当前目录内容 mkdir 创建目录 du 统计每个目录下的文件字节数 2.2、文件命令 which 查找 命令字 所在位置 find 查找文件 touch 创建一个空文件 cp 复制文…

签发免费https证书的方式

目录 http访问和https访问的区别 实现https后有哪些好处: 如何申请、安装部署免费https证书: 在浏览网页时,最常见的是http访问,但是也有一部分网站前缀是https,且浏览器网址栏会出现“安全”字样,或是绿…

第14章 数据分析案例——2012联邦选举委员会数据库

美国联邦选举委员会发布了有关政治竞选赞助方面的数据。其中包括赞助者的姓名、职业、雇主、地址以及出资额等信息。我们对2012年美国总统大选的数据集比较感兴趣。(http://www.fec.gov/disclosurep/PDownload.do)。我在2012年6月下载的数据集是一个150M…

华为设备WLAN配置之AP上线

WLAN基础配置之AP上线 配置WLAN无线网络的第一阶段,AP上线技术: 实验目标:使得AP能够获得来自AC的DHCP地址服务的地址,且是该网段地址池中的IP。 实验步骤: 1.把AC当作三层交换机配置虚拟网关 sys Enter system view,…

【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 状态栏 | QStatusBar的使用及说明 文章编号:Qt 学…

一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚,于是本文梳理一下,既方便自己记忆,也方便小白学习。 CUDA 首先,CUDA版本,一般指cuda-toolkit,即cuda开发工具包…

开源绘图工具Rnote使用体验分享

软件介绍 Rnote,这款致力于提供矢量绘图、手写笔记以及文档注释功能的免费开源软件,逐渐成为了学生、教师以及绘图板用户的新宠。其独特之处在于,它不仅支持PDF和图片的导入导出,还拥有无限画布和适应各种屏幕大小的界面设计,这些功能使得Rnote在众多同类软件中脱颖而出。…

python抽取pdf中的参考文献

想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如: 想要只在引用序号(如 [3])前换行,其它换行都去掉&…

【中霖教育口碑】什么情况下不允许参加注册会计师考试?

对于某些特殊情况,存在明确的禁止性规定,是不能参加注册会计师考试的,中霖为大家分享一下!关于注册会计师全国统一考试的资格条件,需明确以下要点: 1. 针对在前期注册会计师统一考试中因违反规定而受到禁止参加考试的…

awesome-ai4s 现已开源!超全 AI for Science 学术论文与数据资源汇总,持续更新ing

2018 年中国科学院院士鄂维南提出「AI for Science」概念,强调利用 AI 学习科学原理、创造科学模型来解决实际问题。同年,AlphaFold 崭露头角,从 43 种蛋白质中准确预测出了 25 种蛋白质结构。2021 年,AlphaFold 2 开源并预测了 9…

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具,它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器,允许你在仓库级别方便地配置钩子脚本;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

上位机图像处理和嵌入式模块部署(mcu之芯片选择)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前市面上的mcu很多,有国产的,有进口的,总之种类很多。以stm32为例,这里面又包括了stm32f1、stm32…

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

飞睿智能超宽带UWB标签模组,简化设备开发流程,实时高速率数传交互应用

在科技飞速发展的今天,UWB超宽带技术因其高精度、低功耗和高安全性的特点,正逐渐成为智能设备定位和数据传输的新宠。 UWB技术是一种无线通信技术,它通过使用非常宽的频带进行数据传输,从而实现高数据传输速率和高精度定位。 飞…