首页 > 编程语言 >11.2算法

11.2算法

时间:2023-11-02 10:33:05浏览次数:37  
标签:ListNode res nullptr 11.2 next 算法 l2 l1

两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

 

示例 1:


输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]
示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]
 

提示:

每个链表中的节点数在范围 [1, 100] 内
0 <= Node.val <= 9
题目数据保证列表表示的数字不含前导零
相关标签

C++

 

/**  * 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) {     ListNode* res= new ListNode(0);     ListNode *head = res;     int carry = 0,x,y,total;     while(l1 != nullptr || l2 != nullptr){         x = (l1 != nullptr) ? l1->val:0;         y = (l2 != nullptr) ? l2->val:0;         total = x + y + carry;         carry = total /10;         res->next = new ListNode(total % 10);         res = res->next;         l1 = (l1 == nullptr)?nullptr:l1->next;         l2 = (l2 == nullptr)?nullptr:l2->next;     }     if(carry){         res->next = new ListNode(carry);     }     return head->next;     } };   关键:长度不一致补全长度让数值为0就行,然后再处理起来难度就降低了

标签:ListNode,res,nullptr,11.2,next,算法,l2,l1
From: https://www.cnblogs.com/minipython-wldx/p/17804840.html

相关文章

  • 算法【Hash算法总结】
    一、简介    一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( DistributedHashTable,DHT)中存在的动态伸......
  • bellman_ford算法
    Bellman–Ford算法是一种基于松弛(relax)操作的最短路算法,可以求出有负权的图的最短路,并可以对最短路不存在的情况进行判断。有边数限制的最短路普通做法intne[N],h[N],idx,e[N],wt[N];//wt[]表示边权voidadd(intu,intv,intw)//链式前向星存图{idx++;......
  • 欧几里得算法
    #include<bits/stdc++.h>usingnamespacestd;intgcd(inta,intb){//欧几里得算法 if(b==0) returna; returngcd(b,a%b);}intexgcd(inta,intb,int&x,int&y){//扩展欧几里得 if(b==0){ x=1; y=0; returna; } intd=exgcd(b,a%b,x,y); intt=x;......
  • 【算法笔记】动态规划Dynamic Programming
    参考视频:5SimpleStepsforSolvingDynamicProgrammingProblems引子:最长递增子串(LongestIncreasingSubsequence,LIS)LIS([31825])=len([125])=3LIS([52863695])=len([2369])=4解决问题的三个步骤:可视化例子(visualizeexample)(“visualizee......
  • 查询算法——顺序查找(优化),二分查找(递归)
    顺序查找顺序查找又称为线性查找,是一种最简单的查找方法。适用于线性表的顺序存储结构和链式存储结构,从第一个元素开始逐个与需要查找的元素x进行比较,当比较到元素值相同时,返回元素m的下标,如果比较到最后都没有找到,则返回-1;时间复杂度为O(n)点击查看代码publicstaticvoidm......
  • spfa算法(求最短路和判断是否存在负环)floyd求最短路(11/1)
    #include<iostream>#include<cstring>#include<algorithm>#include<queue>usingnamespacestd;constintN=100010;intn,m;inth[N];intne[N];inte[N],w[N],idx=0;intdist[N];boolst[N];voidadd(inta,intb,intc){ne[idx]=......
  • 欧几里得算法
    算法说明:用较大数除以较小数,再用出现的余数去除除数,如此反复,直到最后余数是0为止网页链接:https://cn.bing.com/search?q=什么是求两个数的最大公约数的欧几里得算法(辗转相除法)&qs=n&form=QBRE&sp=-1&lq=0&pq=什么是求两个数的最大公约数的欧几里得算法(辗转相除法)&sc=3-27&sk=&cvi......
  • 智慧矿山的关键技术之一:皮带撕裂视频分析AI算法
    随着科技的进步,人工智能(AI)在各行各业的应用越来越广泛。智慧矿山作为矿业领域的发展趋势,对提高矿山安全和生产效率具有重要意义。其中,皮带撕裂是矿山生产中常见的故障之一,因此,利用AI算法对皮带撕裂进行实时监测和预警是智慧矿山的关键技术之一。本文将详细介绍皮带撕裂视频分析AI算......
  • Lnton羚通算法算力云平台交通系统调节方案
    随着汽车保有量的不断增加,城市交通网络面临越来越大的压力。在现代社会中,仅仅依靠道路交通基础建设已经无法满足城市通行需求的提升,必须通过优化城市交通组织,大力发展公共交通系统,并结合智能交通控制系统建设等多种手段与基础建设相辅相成,才能保证城市交通的正常运行,为经济建设提供......
  • Lnton羚通视频分析算法平台构建高清电子警察系统解决方案
    Lnton羚通的算法算力云平台是一款优秀的解决方案,具有突出的特点。它提供高性能、高可靠性、高可扩展性和低成本的特性,使用户能够高效地执行复杂计算任务。此外,平台还提供丰富的算法库和工具,并支持用户上传和部署自定义算法,提升了平台的灵活性和个性化能力。城市交通是城市建设的重......