性能优化二第八周作业「架构师训练营第 1 期」
作业一
有两个单向链表(链表长度分别为m,n),这两个单向链表有可能在某个元素合并,也可能不合并,如下图所示的这样。现在给定两个链表的头指针,在不修改链表的情况下,如何快速地判断这两个链表是否合并?如果合并,找到合并的元素,也就是图中的 x 元素。
请用代码(或伪代码)描述算法,并给出时间复杂度。
有两个单向链表,链表1与链表2,以链表2为元素为目标,链表1的指针对应的元素与之比较,如果相等则找到合并元素,没有则链表1指针向右移一位,直到结束。
上一轮链表1每个元素与链表2的第1个元素比较,没有相等的,则链表2的指针右移1位,链表1继续将每个元素与链表2的该指针元素比较,判断比较是否相等,相等则结束,如果没有则继续链表2的元素指针右移一位,继续重复这个比较过程。
LinkedList<string> linkedOne
linkedList<string> linkedTwo
For(string element:listedOne)
For(string dest:listedTwo)
If(element.equals(des))
Return element;
Break;
时间复杂度O(m*n)
作业二
请画出DataNode 服务器节点宕机的时候,HDFS 的处理过程时序图。
版权声明: 本文为 InfoQ 作者【天天向善】的原创文章。
原文链接:【http://xie.infoq.cn/article/d4d6f963a06084ca39aa17c9a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论