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

住房和城乡建设部执业资格注册中心网站网站工商网监标

住房和城乡建设部执业资格注册中心网站,网站工商网监标,北京随喜设计网站,企业邮箱登录入口免费leetcode 150道题 计划花两个月时候刷完#xff0c;今天#xff08;第二十二天#xff09;完成了4道(50-53)150#xff1a; 50.#xff08;141. 环形链表#xff09;题目描述#xff1a; 给你一个链表的头节点 head #xff0c;判断链表中是否有环。 如果链表中有某个…leetcode 150道题 计划花两个月时候刷完今天第二十二天完成了4道(50-53)150 50.141. 环形链表题目描述 给你一个链表的头节点 head 判断链表中是否有环。 如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。注意pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。 如果链表中存在环 则返回 true 。 否则返回 false 。第一版这个是经典的题目快慢指针就可以如果有环他们肯定会相遇没环一定会到 null public class Solution {public boolean hasCycle(ListNode head) {ListNode lowhead;ListNode fasthead;while(fast!nulllow!null){lowlow.next;if(fast.nextnull){return false;}fastfast.next.next;if(lowfast){return true;}}return false;} }第二版我总感觉我对这个起始的指针处理不好就看了一下解题他是反着去判断了也可以学习一下 public class Solution {public boolean hasCycle(ListNode head) {if(headnull||head.nextnull){return false;}ListNode lowhead;ListNode fasthead.next;while(low!fast){if(fastnull||fast.nextnull){return false;}fastfast.next.next;lowlow.next;}return true;} }51.2. 两数相加题目描述 给你两个 非空 的链表表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的并且每个节点只能存储 一位 数字。 请你将两个数相加并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外这两个数都不会以 0 开头。 示例 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]第一版这个题我第一反应以为他第一个指针是最大位数。。看了好久才读懂了题目。。但是这个题目处理的应该是一个模板就是 3个while 的模板。。一般就是处理长度不一样的情况下我感觉都是3个while。。 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode resnew ListNode(0);ListNode resTempres;int add0;while(l1!nulll2!null){int numl1.vall2.valadd;addnum/10;num%10;resTemp.nextnew ListNode(num);resTempresTemp.next;l1l1.next;l2l2.next;}while(l1!null){int numl1.valadd;addnum/10;num%10;resTemp.nextnew ListNode(num);resTempresTemp.next;l1l1.next;}while(l2!null){int numl2.valadd;addnum/10;num%10;resTemp.nextnew ListNode(num);resTempresTemp.next;l2l2.next;}if(add!0){resTemp.nextnew ListNode(add);resTempresTemp.next;}return res.next;} }52.(21. 合并两个有序链表题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入l1 [1,2,4], l2 [1,3,4] 输出[1,1,2,3,4,4]第一版这个也是我上面说的长度不一样要一起处理的 3个while模板只不过这个是链表你只需要指定了头后面也会跟着这个头所以这块就是 一个 while 两个 if class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode resnew ListNode(0);ListNode resTempres;while(list1!nulllist2!null){if(list1.vallist2.val){resTemp.nextnew ListNode(list1.val);list1list1.next;}else{resTemp.nextnew ListNode(list2.val);list2list2.next;}resTempresTemp.next;}if(list1!null){resTemp.nextlist1;}if(list2!null){resTemp.nextlist2;}return res.next;} }53.(138. 随机链表的复制) 题目描述 给你一个长度为 n 的链表每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如如果原链表中有 X 和 Y 两个节点其中 X.random -- Y 。那么在复制链表中对应的两个节点 x 和 y 同样有 x.random -- y 。 返回复制链表的头节点。 用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示 val一个表示 Node.val 的整数。 random_index随机指针指向的节点索引范围从 0 到 n-1如果不指向任何节点则为 null 。 你的代码 只 接受原链表的头节点 head 作为传入参数。第一版这个题比较长意思就是每个节点都要新建我第一次写了好久但是写出来还是一坨。。 class Solution {public Node copyRandomList(Node head) {Node resnew Node(0);Node resTempres;Node headTemphead;MapNode,Integer nodeMapnew HashMap();int index0;while(headTemp!null){resTemp.nextnew Node(headTemp.val);nodeMap.put(headTemp,index);headTempheadTemp.next;resTempresTemp.next;}MapInteger,Integer indexMapnew HashMap();for (Map.EntryNode, Integer entry : nodeMap.entrySet()) {if(entry.getKey().randomnull){indexMap.put(entry.getValue(),-1);}elseindexMap.put(entry.getValue(),nodeMap.get(entry.getKey().random));}// 复制 random 开始resTempres.next;Node tempres.next;index0;while(resTemp!null){tempres.next;if(indexMap.get(index)!-1){for(int i0;iindexMap.get(index);i){temptemp.next;}resTemp.randomtemp;}index;resTempresTemp.next;}return res.next;} }第二版看了解题真的这个思想很好把每个节点单独出来一个一个来赋值他的 next和 random class Solution {public Node copyRandomList(Node head) {if(headnull){return null;}MapNode, Node nodeMap new HashMapNode, Node();Node headTemphead;while(headTemp!null){nodeMap.put(headTemp,new Node(headTemp.val));headTempheadTemp.next;}headTemphead;while(headTemp!null){Node nodeNewnodeMap.get(headTemp);if(headTemp.next!null){nodeNew.nextnodeMap.get(headTemp.next);}if(headTemp.random!null){nodeNew.randomnodeMap.get(headTemp.random);}headTempheadTemp.next;}return nodeMap.get(head);} }昨天又鸽了一天。。不知道为啥昨天啥都不想干。。昨天把yys也删了超鬼王真的肝不动了。。 加油第二十二天了早日跳槽
http://www.w-s-a.com/news/398783/

相关文章:

  • 北京市保障房建设投资中心网站淄博哪个网站做房屋出赁好
  • 如何做网站的优化网站开发怎么收费
  • 网站的关键词怎么选择2345实用查询
  • 免费的制作网站做图剪片文案网站app接单
  • 中国有多少网站有多少域名上海网站建设网页制作邢台
  • 网站 数据报表如何做室内设计联盟官方网站入口
  • 怎样建设网站论文合肥做网站的软件公司
  • 收款后自动发货的网站是怎么做的怎么看网站后台网页尺寸
  • 谷歌seo引擎优化宁波seo关键词
  • 外贸网站建设需要注意什么seo课程
  • 做信息图网站网站建设的软件介绍
  • 网站开发语言数据库有几种魏县审批建设的网站
  • 北京公司网站建设推荐海口建设
  • 不懂编程如何做网站婚礼网站模板
  • 像京东一样的网站wordpress入门视频教程7 - 如何在文章里加入视频和音乐
  • 惠州网站建设排名wordpress3万篇文章优化
  • 创建网站的三种方法北京建王园林工程有限公司
  • jsp网站建设模板下载十大免费excel网站
  • 网络公司网站图片网站建立好了自己怎么做优化
  • 云主机是不是可以搭建无数个网站百度快速seo优化
  • 房地产怎么做网站推广建立音乐网站
  • 川畅科技联系 网站设计网站开发的教学视频
  • 为什么学网站开发凡科登陆
  • 设计师常备设计网站大全中山精品网站建设信息
  • 杭州建设工程网seo服务是什么
  • 兼职做问卷调查的网站wordpress mysql设置
  • 怎么在百度上能搜到自己的网站山西seo谷歌关键词优化工具
  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳
  • 网站建设ssc源码修复设计班级网站建设