01 2022 档案
摘要:针对github开源项目vessl的学习笔记 转载自 Ali Josie-Build Containers From Scratch in Go 在这个系列中,我将尝试演示容器底层是如何工作的,以及我是如何开发vessel 的 What is vessel? vessel 是我的一个教育目的的项目,
阅读全文
摘要:转载自 ericchiang-Containers from Scratch 2017/01/07,这篇文章是为了我在 CAT BarCmp 的演讲而写,演讲的起由是我的自我挑战——“在没有Docker或rkt的情况下介绍Docker” 容器(containers)通常被认为是廉价的虚拟机,仅仅是单
阅读全文
摘要:转载自 阿里云智能基础软件部-技术博客-The Future of Docker Containers 实际来自于 DockerCon 2021 Crosby 的演讲 the-road-ahead-for-containers Docker在2013年开始使用 LXC 作为其基础技术,但它在过去六年
阅读全文
摘要:lower_bound() 第一个大于等于x的迭代器 upper_bound() 第一个大于x的迭代器 查找第一个小于等于x的数 upper_bound()的返回值 - 1,就是要查找的地址 查找第一个小于x的数 lower_bound()的返回值 - 1,就是要查找的地址 参考链接:https:/
阅读全文
摘要:这类问题,由于需要按顺序解决,所以排除排序+优先队列+贪心那一套;又不能是简单的贪心,因为某个问题是否选择解决,会影响后面可能得到的分数,所以很可能是个dp. 当然也有想排序再DP,但通常是线性的,线性的就有从前往后、从后往前两种顺序,通过都可以 LC 5982. Solving Questions
阅读全文
摘要:转载自 mafeifan 的技术博客-Docker常见问题 为什么使用单进程容器 使用容器时,要尽量使用单进程容器,所谓单进程容器,是指在容器运行时,只有一个工作进程。 如果需要存在多个进程协作的时候,要部署为两个容器,比如 PHP 一个容器,MySQL 一个容器,而不要在一个容器中运行这两者。 因
阅读全文
摘要:括号表达式匹配的条件:从左往右,左括号个数大于等于右括号个数,且最后左右括号数相等。 LC 921. 使括号有效的最少添加 题目:添加最少数目的左括号或右括号,使得表达式有效 方法: 贪心,遇到右括号,能匹配就匹配,不能匹配就答案加1。 为什么这是最少的次数就不会证明了... class Solut
阅读全文
摘要:先看一道经典题,用两个堆维护中位数 LC 295. 数据流的中位数 题目:元素逐渐增加,求当前数剧的中位数 方法:用一个大根堆维护左边,用一个小根堆维护右边,插入元素时保持两者差不超过1。查找时只需要考虑两个顶点。 其实一种直观的思路是维护有序列表,保持插入和查找都是logn,比如跳表,但是很难写啊
阅读全文
摘要:LC 1263. 推箱子 题目:推箱子中箱子的最少移动步数,人的次数不算 方法一:优先队列+BFS Node{步数,人x,人y,箱子x,箱子y},优先队列按步数从小到大排序,每次取最小的出来更新(相当于Dijkstra变形),vis记录节点是否访问。 也可以完全用dis数据,记录达到某状态的最小距离
阅读全文
摘要:LC 264. 丑数 II 题目:你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。 方法:介绍三种方法,从最直观的开始 方法一:堆+欧拉筛 每次从堆中取一个最小的,然后分别乘2,3,5进行扩展。每次取出的最小值加入答案,需要去重。 有大量的重
阅读全文
摘要:有一类题,像有n个任务,n个会议,n颗树,要你按一定的顺序执行,使得总用时最少等,通常都需要想一个贪心策略,然后排序,再用优先队列逐一处理。 当然贪心是需要证明的,可以先找到一个序,然后证明交换任意两项不会更优。然而比赛的时候更多靠直觉。 LC 2136. 全部开花的最早一天 题意:有n颗植物,每颗
阅读全文
摘要:差分都是结合前缀和使用的,应用于区间修改,且只最后查询一次的情形。 一维差分 对于$[a_1, a_2, a_3, ..., a_n]$,前缀和$S_i = a_1 + a_2 + , ..., a_i$,差分$diff_0 = a_0-0, \ diff_i = a_i - a_{i-1}$ 因此
阅读全文
摘要:Redis已经成为系统高性能缓存方案的事实标准,而Redis使用纯C语言编写,每个模块功能都划分的很清晰。Redis服务器是一个事件驱动程序,最近也刚好在看事件驱动这一块。 Redis 有多快? 根据官方的 benchmark,通常来说,在一台普通硬件配置的 Linux 机器上跑单个 Redis 实
阅读全文
摘要:名字高大上,其实就是循环、遍历这个意思, 不过它强调的一个轮转,且每个均匀,所以通常有取模的操作。 比如在调度中应用: Round Robin 是一种CPU 调度算法,其中每个进程以循环方式分配一个固定的时隙。 它简单、易于实现且无饥饿,因为所有进程都获得公平的 CPU 份额。 作为核心的 CPU
阅读全文
摘要:维护满足某种条件的子数组,如果具有某种单调性,通常可以用双指针。 题目一 题目:题意:求最长的子串,且其最大值与最小值之差在[𝑚1,𝑚2]内,如果有多个,输出子串和最大的(华为机试题) 方法: 假设,我们已经有一组数字,我们继续添加数字时:当前这组数字的max-min要么增大,要么不变。而删除数
阅读全文
摘要:跟博弈的必败必胜一样的分析,后手存在必败则先手必胜,先手全为必胜则先手必败。 DFS时对后手的返回值做上述两种判断就行。 LC 913. 猫和老鼠 方法一:必胜态分析+DFS 思路:每次走一步,鼠走的时候,如果之后存在鼠必胜(即猫必败),则当前鼠必胜(相当于沿着必胜的方式一直走);如果之后都是猫必胜
阅读全文
摘要:这里将4个类似的题进行汇总,都是通过删除k个元素/重复元素,使得剩下的数组最大/最小,都是采用类单调栈的方法。 单调栈的思路,但是由于每个元素至少一个或者删除个数的限制,栈其实并不是完全单调的。 LC316. 去除重复字母 思路就是 遇到一个新字符 如果比栈顶小 并且在新字符后面还有和栈顶一样的 就
阅读全文
摘要:UDP要想可靠,就要接收方收到UDP之后回复个确认包,发送方有个机制,收不到确认包就要重新发送,每个包有递增的序号,接收方发现中间丢了包就要发重传请求,当网络太差时候频繁丢包,防止越丢包越重传的恶性循环,要有个发送窗口的限制,发送窗口的大小根据网络传输情况调整,调整算法要有一定自适应性。恭喜你, 你
阅读全文
摘要:信息的加密与去密 信息加密的简单模型如图所示: 就是先对数字信息$x$做一个变换$E$,将变换后的信息$y=E(x)$发出,接收方收到信息$y$后,进行一个相反的变换$D$(也就是$E$的逆运算),恢复成数字信息$x=D(y)$,从而识别原始信息。 通常把数字信息$x$叫做明文,加密后得到的数字信息
阅读全文
摘要:笔记 腾讯工程技术直播-QUIC协议详解 一、QUIC简介 QUIC介绍 QUIC是Google开发的基于UDP的传输协议,用于提升网络加载速度。 QUIC发展:2012年部署上线,2013年提交IETF,2021年推出标准RFC9000. QUIC 协议非常复杂,因为它做了太多事情: 为了实现传输
阅读全文
摘要:问题rt,有很多解决方法。 先说结论,锐角三角形的概率是 \(\frac{1}{4}\),钝角三角形的概率是 \(\frac{3}{4}\) ,直角三角形的概率是 \(0\). 1. 微积分 如下图所示: 取单位圆上任意两点点A和B,若ABC三点要够成锐角三角形,则点C必须在DE之间。 设弧AB对应
阅读全文
摘要:转载自 C++ 返回值优化详解 RVO与NRVO 先举一个简化的类,该类只有一个private成员,并且有无参构造函数、有参构造函数、拷贝构造函数、移动构造函数、析构函数。 //Str.h class Str { private: int size; public: Str() { cout <<
阅读全文
摘要:这是图中很基本的问题,很多图的问题可以转化为求图中的最大环或最长链。 例如Leetcode 5970. 参加会议的最多员工数,等价于求有向图最长环,和长度为2的环加上其外链。 有向图 最大环 有多种方法: 一种是先用拓扑排序将外链去掉,再dfs每一个环 另一种是从某一点出发,记录途径的点,如果遇到已
阅读全文
摘要:笔记: 2021年腾讯技术大咖直播分享-深入了解异步编程范式 重点在于范式,不会精准到语言细节 1. 异步是怎么提高效率的? CPU实在是太快啦 原因: 摩尔定律失效:芯片工艺逼近物理极限,计算机性能基本到头了 互联网马太效应:流量向几个头部app集中,对服务器的性能要求越来越高:分布式、单机优化
阅读全文