当前位置: 首页 > news >正文

天津谷歌优化seo的名词解释

天津谷歌优化,seo的名词解释,杭州笕桥网站建设,西安建网站网站推广题目描述 链接:https://leetcode.cn/problems/add-two-numbers/?envTypefeatured-list&envId2ckc81c?envTypefeatured-list&envId2ckc81c 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式…

题目描述

链接:https://leetcode.cn/problems/add-two-numbers/?envType=featured-list&envId=2ckc81c?envType=featured-list&envId=2ckc81c

难度:中等

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

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

你可以假设除了数字 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
  • 题目数据保证列表表示的数字不含前导零
  • 数字按照逆序排序的意思就是,头节点是个位数,下一节点是十位数,依次类推。如果相加大于等于10,则需要进位,把位数加到后面的和中
  • 两个链表的长度不一定一样

解法

遍历两个链表,然后依次取节点元素相加。如果相加大于等于10,则需要进位,把位数加到后面的和中。

两个链表的长度不一定一样。遍历时,如果短的遍历完了,相加按照0即可。

注意如果链各个链表都加完了,进位还为1,链表还有下一个节点,值为1。

还需要注意的是,在第一次循环时,我们无法往一个空节点的末尾添加节点。这里的技巧是,创建一个哨兵节点(dummy node),当成初始的「空链表」。循环结束后,哨兵节点的下一个节点就是最终要返回的链表头节点。

代码如下:

from typing import Optionalclass ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextclass Solution:def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:# cur_node是当前链表,dummy_node是哨兵节点cur_node = dummy_node = ListNode()# carry用来记录上次两数相加进位的数字carry = 0# 如果两个链表有一个不为空,或者进位的不为0,执行下面的逻辑while l1 or l2 or carry != 0:# 当前的和为链表两个节点数字相加,再加上上一次进位的数字,注意链表长度可能不一样,如果短的那个没有节点了,就取0即可carry = (l1.val if l1 else 0) + (l2.val if l2 else 0) + carry# 下一个节点的值,取和对10的余数即可cur_node.next = ListNode(carry % 10)# 更新当前节点为下一个节点cur_node = cur_node.next# 新的进位是除以10的商carry //= 10# 最后遍历参数链表里下一个节点l1 = l1.next if l1 else Nonel2 = l2.next if l2 else None# 哨兵节点的下一个节点即为结果节点return dummy_node.next# 辅助函数:用来创建链表
def build_link(l : Optional[list]):head = current_node = Nonefor ele in l:if current_node:current_node.next = ListNode(ele)current_node = current_node.nextelse:head = current_node = ListNode(ele)return head# 辅助函数:用来打印链表
def print_node(n : Optional[ListNode]):l = []while n:l.append(n.val)n = n.nextprint(l)if __name__ == "__main__":l1 = [9, 9, 9, 9, 9, 9, 9]l2 = [9, 9, 9, 9]link1 = build_link(l1)link2 = build_link(l2)res = Solution().addTwoNumbers(link1, link2)print_node(res)

复杂度

时间复杂度:O(n)
空间复杂度:O(1)

http://www.hkea.cn/news/138888/

相关文章:

  • Java做网站的基本框架优化关键词规则
  • 网上手机商城网站建设直通车推广计划方案
  • 网站框架是谁做做个电商平台要多少钱
  • 网站开发建设书籍推荐b2b外贸平台
  • 网站首页的布局设计进行优化
  • 无锡做家纺公司网站如何建网站不花钱
  • bootstrap制作的网站页面优化网站seo
  • 海口网站建设优化班级优化大师官网登录
  • 连接品硕网线做怎么弹网站百度地图推广电话
  • 网站做cdn怎么弄百度推广怎么推广
  • 光谷做网站推广竞价服务托管公司
  • 网上商城网站建设方案书公众号seo排名
  • wordpress内网访问泰州百度关键词优化
  • 做淘客网站用备案网络营销计划书怎么写
  • 网站 公安 备案深圳百度推广客服电话多少
  • 北京米兰广告设计有限公司广州优化疫情防控举措
  • 汕头个人建站模板网站推广计划方法
  • php企业网站无限制源码网络营销方案设计
  • 动漫网站开发与建设百度网盘网页版入口官网
  • 咸阳做网站长沙网络营销外包哪家好
  • 专门做私人定制旅游的网站搜索引擎营销方法
  • 注册安全工程师管理系统网奇seo赚钱培训
  • 武汉市住房和城乡建设厅官方网站生猪价格今日猪价
  • 住房和城乡建设部网站诚信评价搜索引擎优化人员优化
  • 网站制作 太原网络营销专业课程
  • 做网站去哪个公司网络营销策划书的结构
  • 个人无网站怎样做cps广告深圳全网推广公司
  • 中国人可以做的c2c网站上海网站排名推广
  • 网站建设目标定位公司员工培训方案
  • 美工培训班学百度自然搜索排名优化