week08 作业

用户头像
李锦
关注
发布于: 2020 年 07 月 29 日

作业一:



Hash法:

a. 该方法将任意链表的节点遍历存储到Hash表

b. 然后遍历另外一个链表节点,看是否在Hash表中存在,如果存在就是相交合并的节点

c. 如果遍历完成后,都没有相交节点,则两个链表无合并节点

该方法Hash表的快速查询特性,查询时间复杂度是O(1),两个链表遍历的时间复杂度是O(m+n),所以该方法的时间复杂度是O(m+n​),由于使用了Hash表存储一个链表的节点,所以它的空间复杂度是O(m​)或者O(n​)。



/**
* <strong>Hash比对法: </strong>先将nodeA的所有节点放到一个集合中,然后再遍历nodeB节点看是否在集合中存在,如果存在则退出遍历循环,该节点即是nodeA与nodeB的相交节点<br/>
* 该方法的时间复杂度是O(m+n),由于使用了集合存储nodeA的节点,所以空间复杂度是O(m)或O(n)
*
* @param nodeA
* @param nodeB
* @return
*/
public static ListNode firstMeetNode2(ListNode nodeA, ListNode nodeB) {
if (nodeA == null || nodeB == null) {
return null;
}
Set<ListNode> set = new HashSet<>();
ListNode node = nodeA;
set.add(node);
while (node.next != null) {
node = node.next;
set.add(node);
}
node = nodeB;
while (node != null && !set.contains(node)) {
node = node.next;
}
return node;
}






  1. DataNode会在启动后向NameNode注册

  2. DataNode每隔一段时间(3秒钟)向NameNode主动发送心跳,心跳会带着NameNode的命令

  3. NameNode在超过一定时间(10分钟)未收到DataNode的心跳,就认为该DataNode出现问题

  4. NameNode中存储着每个DataNode的文件块信息,NameNode找到该DataNode上的文件块信息及分布在哪些DataNode服务器上

  5. NameNode向这些DataNode发送文件块复制命令,将文件块复制到指定的DataNode上

  6. 当DataNode复制完成后,通知NameNode复制任务完成



用户头像

李锦

关注

还未添加个人签名 2017.11.30 加入

还未添加个人简介

评论

发布
暂无评论
week08 作业