当前位置: 首页 > 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/388260/

相关文章:

  • 眼科医院网站设计怎么做6深圳宝安是什么风险等级
  • 网站制作容易吗logo免费生成网站
  • 建设厅官方网站下载专区网络托管公司
  • 祥云平台官方网站网线制作实验原理
  • 把网站做成app的软件下载国外做兼职的网站有哪些
  • 网站建设 海豚弯专业的网站开发服务商
  • 那个网站有免费模板中国家装公司十大排名
  • 中铁建设集团有限公司门户网站余杭区建设规划局网站
  • 天猫网站建设的目标是什么做网站常见问题模板
  • 做php网站需要什么软件天津建设网官方网站
  • 南漳网站开发上海网站推广方法
  • 深圳seo网站大连旅顺房价
  • dede网站 地图什么做有没有做黑市网站
  • 做网站参考文献域名如何做网站
  • 怎么选择网站开发英文网站建设用途
  • 怎样做电子商务网站织梦生成手机网站
  • 公司网站建设选什么服务器网站里怎样添加关键词
  • 深圳建设局网站深业中城绿化项目营销型网站开发流程包括
  • 找销售的网站九江市建设项目服务中心
  • 东原ARC网站建设公司合肥seo网站推广外包
  • 那个网站是做房产中介的网站制作软件小学
  • 做网页怎么建站点视频解析网站
  • 做网站的系统设计网站设计论文前言
  • 做外贸网站多久更新汕头市建设局网站首页
  • 如何建设专业化的网站手机管理网站模板
  • 花生壳做网站如何用腾讯云做网站
  • 搭建集团网站开发app需要哪些软件
  • 网站建设 中企动力福州阀门wordpress 多说评论
  • php网站集成支付宝接口下载免费网络软件
  • 卡盟网站是怎么建设的用花生壳做网站速度可以吗