ARTS-week33
Algorithms
Delete Node in a Linked List
思路: 将待删除节点的下一个节点的值赋给待删除节点,然后删除下一个节点。
1 | /** |
Valid Anagram
思路: 变形词就是两个单词中每个字母出现的次数相同,使用一个计数器,记录第一个单词中每个字母出现的次数,遍历第二个单词,再减去相应字母的出现次数,如果某个字母的计数器不为0了,就说明某个字母出现的次数不一样,也就不是变形词了。
1 | class Solution { |
在上面的解法之前,使用过这种方法,Leetcode显示需要40ms,实在是太慢了。。。
1 | class Solution { |
Review
本周阅读英文文章 Extremely Imbalanced data — Fraud detection
Technique
UNP 关于SO_KEEPALIVE套接字选项
给一个TCP套接字设置保存选项后,如果2小时内在该套接字的任一方向上都没有数据交换,TCP就自动给对端发送一个保持存活探测分节(keep-alive probe)。这是一个对端必须响应的分节,它会导致以下三种情况之一:
1)对端以期望的ACK响应。应用进程得不到通知(因为一切正常)。在又经过无动静的2小时后,TCP将发出另一个探测分节;
2)对端以RST响应,它告知本端TCP: 对端已崩溃且已重新启动。该套接字的待处理错误被置为ECONNRESET,套接字本身被关闭;
3)对端对保持存活探测分节没有任何响应。源自Berkeley的TCP将另外发送8个探测分节,两两相隔75s,试图得到一个响应。TCP在发出第一个探测分节后11份15秒内若没有得到任何响应则放弃。
- 问题: 时间参数是否可修改?
必须注意大多数内核是基于整个内核维护这些时间,而不是基于每个套接字维护的,因为如果把无活动周期从2小时修改为15分钟,那么将影响到该主机上所有开启了本选项的套接字。
那么看一下Ubuntu 16.04中的相关参数设置:
1 | cat /proc/sys/net/ipv4/tcp_keepalive_time |
可以看出参数值跟书中的描述有所不同~
Share
使用tree生成HTML形式的目录树:
1 | $ tree PATH -H http://localhost -o output.html |
PATH替换为真实路径,也可以用.
;localhost替换为适合存放输出文件的URL