ARTS挑战第十四周

Algorithm

  • 374. 猜数字大小 经典二分搜索
  • 435. 无重叠区间 使用求解最大不重叠区间的算法求出最大不重叠区间,然后使用区间数量减去这个最大不重叠区间的数量,即为需要移除的最小的数量。求解最大不重叠区间:1)先对区间按照结束的位置进行升序排序 2)初始化上一个区间的结束位置为最小的start 3)找到当前结束最早的区间,保证其开始的位置>= 上一个区间的结束位置,并加入不重叠区间集合
  • 452. 用最少数量的箭引爆气球 思路:找到最大的不重叠区间的数量,这里定义不重叠是端点也不能重叠,因为端点重叠在本题中也可以一箭射掉。这里主要需要注意的是,极端情况,即区间左端点可能是最小的整数。以为考虑端点不能重叠,要求curEnd<interval[i][0], curEnd的初始值自然想到的是intevals[0][0]-1;

Review

  1. Linux网络编程“惊群”问题总结: 惊群就是当多个线程或者多个进程在同事阻塞等待一个事件,如果这个事件发生,所有线程/进程都会被唤醒,但最终只有一个线程/进程能处理事件成功,这种性能浪费就是惊群。linux2.6版本后内核上解决了accept函数导致的惊群问题,但是select、poll或epoll 模型仍然存在,解决方案就是加互斥锁。
  2. 原来 8 张图,就能学废 Reactor 和 Proactor

image-20210706220438442

Hole punching (networking)

用NAT(Network Address Translation) 穿透用来实现两个不互联的内网之间的p2p连接。例如A和B处于两个不同的局域网,那么A是不可能直接连到B的。A和B都是通过自己的NAT实现公网访问,因此A和B都能连接到公网地址C,则可以让C来实现NAT 穿透,交换以下A和B转换后的公网地址,从而实现A和B的点对点TCP通信。

Tips

  1. python __import__(string)方式不能动态加载 如 lz4.block这种带点的,需要使用importlib:
import importlib as imp
module=imp.import_module("lz4.block")
  1. c++ std::sort 排序 std::sort(array.begin(),array.end(),[] (int a, int b ) ->bool{return a<b;})

Share

想share一篇关于MySQL的MTR如何使用,以及如何使用dbgen,准备发在下个吧,这个拖了几周了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值