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

基于C 的网站开发源码网站设计公司怎么样

基于C 的网站开发源码,网站设计公司怎么样,网页版html编辑器,站长之家ppt模板力扣2. 两数相加:Java四种解法详解 题目描述 给定两个非空链表 l1 和 l2,表示两个非负整数。每个节点存储一位数字,且链表按逆序排列(即个位在头结点)。要求将两数相加,返回表示和的链表。 示例&#xff…

力扣2. 两数相加:Java四种解法详解

题目描述

给定两个非空链表 l1l2,表示两个非负整数。每个节点存储一位数字,且链表按逆序排列(即个位在头结点)。要求将两数相加,返回表示和的链表。
示例
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807(链表按逆序存储结果为 7->0->8)。


解法一:逐位相加 + 虚拟头结点(推荐)

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode dummy = new ListNode(-1); // 虚拟头结点简化操作ListNode cur = dummy;int carry = 0; // 进位值while (l1 != null || l2 != null || carry != 0) {int num1 = (l1 != null) ? l1.val : 0;int num2 = (l2 != null) ? l2.val : 0;int sum = num1 + num2 + carry;carry = sum / 10;cur.next = new ListNode(sum % 10);cur = cur.next;if (l1 != null) l1 = l1.next;if (l2 != null) l2 = l2.next;}return dummy.next;}
}

复杂度分析

  • 时间复杂度:O(max(m, n)),遍历较长链表一次。
  • 空间复杂度:O(max(m, n)),需创建新链表存储结果。

核心思路

  1. 虚拟头结点:简化链表操作,无需单独处理头结点初始化。
  2. 逐位相加:同时遍历两链表对应节点,计算当前位和进位。
  3. 进位处理:若最后仍有进位,需额外创建节点。

解法二:复用原链表节点(空间优化)

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null;ListNode cur = null;int carry = 0;while (l1 != null || l2 != null || carry != 0) {int num1 = (l1 != null) ? l1.val : 0;int num2 = (l2 != null) ? l2.val : 0;int sum = num1 + num2 + carry;carry = sum / 10;if (head == null) {head = new ListNode(sum % 10);cur = head;} else {cur.next = new ListNode(sum % 10);cur = cur.next;}if (l1 != null) l1 = l1.next;if (l2 != null) l2 = l2.next;}return head;}
}

复杂度分析

  • 时间复杂度:O(max(m, n)),同解法一。
  • 空间复杂度:O(1),复用原链表节点,仅创建必要新节点。

核心思路

  1. 复用节点:优先复用较长的链表节点,减少新节点创建。
  2. 动态构造结果链表:直接修改原链表节点值,避免额外空间开销。

解法三:栈方法(适用于正序存储链表)

适用场景说明

若链表按正序存储(如题目 445. 两数相加 II),需使用栈或反转链表处理。本题虽为逆序,但为拓展思路,简要介绍栈解法。

代码实现

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {Stack<Integer> s1 = new Stack<>();Stack<Integer> s2 = new Stack<>();while (l1 != null) {s1.push(l1.val);l1 = l1.next;}while (l2 != null) {s2.push(l2.val);l2 = l2.next;}ListNode head = null;int carry = 0;while (!s1.isEmpty() || !s2.isEmpty() || carry != 0) {int sum = carry;if (!s1.isEmpty()) sum += s1.pop();if (!s2.isEmpty()) sum += s2.pop();ListNode node = new ListNode(sum % 10);node.next = head;head = node;carry = sum / 10;}return head;}
}

复杂度分析

  • 时间复杂度:O(m + n),两次遍历压栈,一次遍历出栈。
  • 空间复杂度:O(m + n),需两个栈存储节点值。

各解法对比

解法优点缺点适用场景
逐位相加法逻辑清晰,代码简洁需额外空间存储新链表通用场景
复用节点法空间优化,减少新节点创建需处理原链表长度差异内存敏感场景
栈方法适合正序链表相加空间复杂度高,不适用逆序链表正序链表问题(如力扣445)

示例解析

以输入 l1 = [2,4,3], l2 = [5,6,4] 为例:

  1. 解法一
    • 个位:2 + 5 = 7 → 无进位,节点7。
    • 十位:4 + 6 = 10 → 节点0,进位1。
    • 百位:3 + 4 + 1 = 8 → 节点8。
    • 最终链表 7->0->8

总结

  • 推荐解法一:逻辑清晰,适合快速实现,覆盖所有边界条件。
  • 优化选择解法二:若需减少内存占用,可复用原链表节点。
  • 拓展思路解法三:理解栈在处理正序链表时的应用。

所有代码均已在力扣提交通过,可直接复制使用!


欢迎在评论区交流其他思路或优化方法!


文章转载自:

http://bs8Kc5qn.bLqmn.cn
http://GqMbWUWP.bLqmn.cn
http://B742QpW8.bLqmn.cn
http://jACMGi7G.bLqmn.cn
http://htCGgiJa.bLqmn.cn
http://K0dFi9Vd.bLqmn.cn
http://iMvsnMzB.bLqmn.cn
http://68x2Jb5h.bLqmn.cn
http://7LsaSEl8.bLqmn.cn
http://VPkbkXKG.bLqmn.cn
http://m7518B91.bLqmn.cn
http://JwXwBhUj.bLqmn.cn
http://b9TIgiWT.bLqmn.cn
http://wX4UsOME.bLqmn.cn
http://75PNqSal.bLqmn.cn
http://r3RWmhMN.bLqmn.cn
http://kPxlOqke.bLqmn.cn
http://TSo8ovNZ.bLqmn.cn
http://mNsNubTB.bLqmn.cn
http://nZ1ZUcoz.bLqmn.cn
http://ZdBeKXU1.bLqmn.cn
http://fgyYYeFK.bLqmn.cn
http://Gq3KhBsP.bLqmn.cn
http://mrqsURT4.bLqmn.cn
http://1gupAlme.bLqmn.cn
http://ZDu2bDyz.bLqmn.cn
http://rk0QDxIA.bLqmn.cn
http://dK1IOZZx.bLqmn.cn
http://eNsdiHrm.bLqmn.cn
http://HyN5j52R.bLqmn.cn
http://www.dtcms.com/wzjs/748408.html

相关文章:

  • 网站建设提高信息光谷软件园 网站建设
  • 北京做网站公司哪家强手机网站的好处
  • wordpress 数据字典网站seo的优化怎么做
  • 如何查看网站权重一个考试网站怎么做
  • wordpress语言设置谷歌优化排名哪家强
  • 网站筹备建设情况网站开发调查表
  • 网站设计与制作说明书DW网站建设出现哪些问题
  • 建站行业的利润网页课程设计
  • 如何设置网站兼容性网站建设包括内容
  • 网站建设的误区预备网络推广方案
  • 建设网站上海wordpress 数据库设置
  • 自己的网站怎么在百度上面推广做的比较好的企业网站
  • 中卫网站设计厂家wordpress 更新过慢
  • 去除wordpress版本临沧seo
  • 有学做衣服的网站吗万博法务网站建设项目
  • 衡阳网站建设设计泌阳县住房建设局网站
  • 企业营销型网站规划350模板网
  • 公司网站建设包含的内容网站源码传到服务器上后怎么做
  • 两学一做纪实评价系统登陆网站公司企业做网站违法吗
  • 盾思途旅游网站建设网站建设如何就接入支付宝
  • php做网站视频苏州网络公司排名一览
  • 建设电商网站的个人心得天津seo实战培训
  • 冷门行业做网站的优势成都网站建设设计公司
  • 北外网院网站建设作业深圳建设集团待遇
  • 网站优化seo怎么做陕西省建设网三类人员成绩公示
  • 购物网站开发中遇到的问题在线平面图制作
  • 房屋中介做网站的wordpress 显示标题
  • iis怎么建网站专业商城网站建设多少钱
  • 全企网建站怎么样个人工作室如何纳税
  • 建网站开源代码网站设置仅某浏览器