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

18款禁止未成年软件app湘潭关键词优化服务

18款禁止未成年软件app,湘潭关键词优化服务,php网站开发多少钱,班级网页制作模板⭐LeetCode(数学分类) 2. 两数相加——暴力与优化⭐ 提示&#xff1a; 每个链表中的节点数在范围 [1, 100] 内 0 < Node.val < 9 题目数据保证列表表示的数字不含前导零 题解&#xff1a; 暴力与优化&#xff0c;暴力即转换为十进制解题&#xff0c;优化即直接在链表上进…

⭐LeetCode(数学分类) 2. 两数相加——暴力与优化⭐

在这里插入图片描述

在这里插入图片描述

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

题解:

暴力与优化,暴力即转换为十进制解题,优化即直接在链表上进行操作,模拟十进制即可进行进位;

代码:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/// 暴力法 转换为十进制
class Solution1 {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode res = new ListNode();// 不用long时由于链表长度可达100会超int 但long依旧超限制long n1 = 0;  long n2 = 0;long stand = 1;while(l1 != null){long tmp = l1.val * stand;n1 += tmp;stand *= 10;l1 = l1.next;}stand = 1;while(l2 != null){long tmp = l2.val * stand;n2 += tmp;stand *= 10;l2 = l2.next;}long n = n1 + n2;if(n == 0){res.val = 0;return res;}ListNode head = res;while(n > 0){int tt = (int)(n % 10);ListNode tmp = new ListNode(tt);head.next = tmp;head = head.next;n /= 10;}return res.next;}
}// 最优解 直接在链表上模拟十进制运算进行加法及进位操作 
// 难点在于模拟过程需要对进位进行合理处理
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {// 保存最终链表头部的指针ListNode res = new ListNode();// 用于帮助构建res的遍历指针ListNode head = res;// 暂存器 用于l1和l2后面均为null时若前一节点有需要进位的1时则置为一 无该情况默认0int extra = 0;// 标志位 用于标志哪一个链表在退出第一个while后还有多余未遍历的节点boolean f1 = false;boolean f2 = false;// 采用双指针统一遍历 模拟十进制加法 遇到进位需额外处理 直到某一链表遍历完全或均遍历完全则退出模拟while(l1 != null && l2 != null){int n1 = l1.val;int n2 = l2.val;int n = n1 + n2;// 发生进位if(n >= 10){int tmp = n % 10;// 及时进1给高位 若l1后不空可进位到l1下一点 若空进到l2下一点// 若后面均空则进位到暂存器extraif(l1.next != null)l1.next.val++;else if(l2.next != null)l2.next.val++;else    extra = 1;ListNode tNode = new ListNode(tmp);head.next = tNode;}// 未进位 直接新增和的节点else{ListNode tNode = new ListNode(n);head.next = tNode;}// head记得要移动head = head.next;// 越界判断 方便while模拟加法过程退出后哪一链表会剩余节点if(l1.next == null && l2.next == null){f1 = true;f2 = true;}else if(l1.next == null){f1 = true;}else if(l2.next == null){f2 = true;}// 固定移动l1 = l1.next;l2 = l2.next;}// 不可直接将余下的直接链接 因可能存在低位向不为null的节点高位+1情况 会导致9->10 故要检查// eg: l1 = [9,9,9,9,9,9,9] l2 = [9,9,9,9] // 不加额外操作输出 [8,9,9,9,10,9,9]// 正确为 [8,9,9,9,0,0,0,1]if(f1 && !f2){if(l2.val == 10){// 标志位 标志l2余下链表是否有东西boolean flag = false;// 若出现上述预测情况 则要进行循环判断 因可能后1进到前1导致前由9->10 故要继续进位while(l2.val == 10){ListNode tNode = new ListNode(0);head.next = tNode;head = head.next;// 后有东西直接进位+1if(l2.next != null){l2 = l2.next;l2.val++;}// 后无东西则创建一新节点即可 同时l2代表遍历完全else{ListNode tmpNode = new ListNode(1);head.next = tmpNode;flag = true;break;}}// 直至余下链表中无10 此时可直接链接if(!flag)head.next = l2;}// 无10 可直接链接else{head.next = l2;}}// 同上else if(!f1 && f2){if(l1.val == 10){// 标志位 标志余下链表是否有东西boolean flag = false;// 若出现上述预测情况 则要进行循环判断 因可能后1进到前1导致前由9->10 故要继续进位while(l1.val == 10){ListNode tNode = new ListNode(0);head.next = tNode;head = head.next;// 后有东西直接进位+1if(l1.next != null){l1 = l1.next;l1.val++;}// 后无东西则创建一新节点即可 同时l1代表遍历完全else{ListNode tmpNode = new ListNode(1);head.next = tmpNode;flag = true;break;}}// 直至余下链表中无10 此时可直接链接if(!flag)head.next = l1;}// 无10 可直接链接else{head.next = l1;}}// 此不存在上述情况 但可能存在extra 故要考虑是否要因进位而多增加一个节点 其val=1else if(f1 && f2){if(extra == 1){ListNode tNode = new ListNode(1);head.next = tNode;}}// res为带头节点的链表 故返回其nextreturn res.next;}
}

结果:

在这里插入图片描述

http://www.dtcms.com/wzjs/149808.html

相关文章:

  • 注册网站需要备案吗网站怎样优化文章关键词
  • 哪些网站可以上传自己做的视频seo推广方案怎么做
  • 如何做独立手机网站程序员培训
  • 自己做网站哪里最好百度权重网站排名
  • 做网站的图片用什么格式淘宝推广软件哪个好
  • 一键免费做网站广告投放策略
  • 东莞大岭山网站建设西安网站seo外包
  • 甘肃网站建设费用模板建网站价格
  • 上海电子通科技网站建设青岛百度seo代理
  • wordpress 页头设置网站优化排名易下拉排名
  • 关于学院网站建设的通知百度导航2023年最新版
  • 贵阳网页设计优化网站搜索排名
  • php怎么做视频网站个人怎么做推广
  • 泉州有专门帮做网站的吗郑州网站推广技术
  • 哪些网站可以用gif做头像软文推广代理
  • 建收费网站搜索引擎优化seo应用
  • b2c购物网站开发alexa排名
  • 个人网站是啥硬件优化大师
  • 做企业网站需要购什么温岭网络推广
  • 微网站建设市场关键词搜索排名推广
  • 哪里有网站制作公司日营销策划方案ppt范文
  • 微信做单页的网站百度推广客户端电脑版
  • 创建购物网站搜索引擎关键词广告
  • 排名好的郑州网站建设网站快速优化排名排名
  • 做网站帮京东卖东西怎么合作北京线上教学
  • 网站建设需要找工信部吗seo点击
  • 网站建设制作方式有哪些网络推广费用计入什么科目
  • 物流企业网站建设步骤数据分析网站
  • 网站建设未完成短视频营销的发展趋势
  • wordpress外贸商城主题东莞网站建设优化诊断