Icebound

icebound-area

单调栈全攻略

最近刷了不少单调栈,总算搞懂了

基本性质

  1. 入栈顺序为下标顺序。
  2. 出栈序列分批次为单调增/单调减。
  3. 每个元素应当入栈一次出栈一次,复杂度为O(N)

利用好这3点性质,是发挥单调栈作用的关键:

对于性质1,我们可以认为:当你使用了单调栈,那么你所解决的问题一定与数组下标顺序(或者排序后的数组下标顺序)有关系。相当于帮你固定了题目中的一组偏序。对于性质2,我们认为:想要使用单调栈,那么答案或者中间结果必然具有某种单调性。对于性质3,当我们需要O(N)算法时,可以考虑单调栈。

说的过于抽象了,看题。

READ MORE →

InfluxDB 2.4+grafana9.0部署

工作中需要自建一个简单的离线监控平台,车上收集的collectd数据会通过ETL平台提取,上传至时序数据库,然后由grafana展示。

原先这个项目采用的是opentsdb,但是其读写性能不太好,对hbase也有依赖,运维繁琐。业务场景对数据可用性要求不是那么高,即使数据丢了重新跑一下ETL任务即可。综合以上,我自己选了先前比较火热的influxdb作为时序数据库。

READ MORE →

自动驾驶中的名词解释

上班半年多,学习到了不少东西。为了防止像之前在字节那样,跑路了之后完全忘了自己学到了些什么业务知识,在这里做一些记录。也希望能够帮到更多热爱自动驾驶的人。里面可能有不少错误,欢迎捉虫。后续可能会持续更新。

基础

L1,L2,L3,L4,L5:这个一般人都知道。一般车厂的ADAS都是L2(只要有车道保持+ACC,就可以算L2),一些高级一点的,可以应对动态场景的,如小鹏NGP,特斯拉FSD,可以算到L3。L4和L3最大的区别是,L4状态下,对车的主导权在机器手里,也就是在运行条件下,人就不应该接管。而L3是由人主动激活,并且要求人随时接管的。L5则是一个美好的愿景,永远无法达到。

READ MORE →

Python实现并发的几种方式

工作中需要蛋疼的用python实现并发,在读文档+实践了很久之后,做个总结。注意,本文全是根据我实践中的理解来写的,并且尽量避开了实现细节以及我讨厌使用的asyncio.future和task。因为我觉得你搞并发的时候就应该像golang一样,尽量避免让开发者去搞那些奇怪的功能,而是专注于怎么轻松起一个协程,共享数据并且获得结果。

READ MORE →

联邦学习理解及实现

最近毕设要接触到联邦学习,在这里记录一下对联邦学习的理解,防止以后忘了。

机器学习小白一个,可能有错,欢迎指出!

READ MORE →