草庐IT

如何设计一个 70w 在线人数的弹幕系统 ?

原文:cyningsun.com/03-31-2019/live-streaming-danmaku.html背景为了更好的支持东南亚直播业务,产品设计为直播业务增加了弹幕。第一期弹幕使用腾讯云支持,效果并不理想,经常出现卡顿、弹幕偏少等问题。最终促使我们开发自己的弹幕系统。性能要求是需要支持,单房间百万用户同时在线。问题分析按照背景来分析,系统将主要面临以下问题:带宽压力假如说每3秒促达用户一次,那么每次内容至少需要有15条才能做到视觉无卡顿。15条弹幕+http包头的大小将超过3k,那么每秒的数据大小约为8Gbps,而运维同学通知我们所有服务的可用带宽仅为10Gbps。弱网导致的弹幕卡顿、

day45|● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数

70.爬楼梯(完全背包)1.代码classSolution{public:intclimbStairs(intn){vectornums;vectorf(n+1);f[0]=1;for(inti=0;i=j)f[i]+=f[i-j];}}returnf[n];}};2.递归五部曲1.确定dp数组和其下标的含义题目所求是爬到楼梯顶的方案数,f[i]就是爬到i层的方案数。f[n]就是爬到楼顶的方案数2.确定递推公式题目所求是方案数,如f[i],方案数就是所有可以到达i的方案数相加,比如可以走1步和2步,f[i]=f[i-1]+f[i-2]+f[i-3]+......,所以遍历到这个物品时候,就可以

day45|● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数

70.爬楼梯(完全背包)1.代码classSolution{public:intclimbStairs(intn){vectornums;vectorf(n+1);f[0]=1;for(inti=0;i=j)f[i]+=f[i-j];}}returnf[n];}};2.递归五部曲1.确定dp数组和其下标的含义题目所求是爬到楼梯顶的方案数,f[i]就是爬到i层的方案数。f[n]就是爬到楼顶的方案数2.确定递推公式题目所求是方案数,如f[i],方案数就是所有可以到达i的方案数相加,比如可以走1步和2步,f[i]=f[i-1]+f[i-2]+f[i-3]+......,所以遍历到这个物品时候,就可以

「动态规划」LeetCode 70(爬楼梯)

Leetcode70题有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~题干简述给定:假设你正在爬楼梯,需要爬n阶你才能到达楼顶。每次你可以爬1或2个台阶。要求:计算出有多少种爬楼梯的方式。解题思路如果我们缩小视野(把大问题化为小问题),爬到第n阶台阶有两种方式:从n-1阶爬一级台阶从n-2阶爬两级台阶用公式表达:dp[n]=dp[n−1]+dp[n−2],其中的特例是:dp[0]=1和dp[1]=1。嚯!这不就是LeetCode509(斐波那契数列)么。代码实现classSolution:defclimbStairs(self,n:int)->int:ifn复杂度时间复杂度O(n)

「动态规划」LeetCode 70(爬楼梯)

Leetcode70题有人问我:烤冷面你这两周怎么总搞简单题?我想说:一步一步来~题干简述给定:假设你正在爬楼梯,需要爬n阶你才能到达楼顶。每次你可以爬1或2个台阶。要求:计算出有多少种爬楼梯的方式。解题思路如果我们缩小视野(把大问题化为小问题),爬到第n阶台阶有两种方式:从n-1阶爬一级台阶从n-2阶爬两级台阶用公式表达:dp[n]=dp[n−1]+dp[n−2],其中的特例是:dp[0]=1和dp[1]=1。嚯!这不就是LeetCode509(斐波那契数列)么。代码实现classSolution:defclimbStairs(self,n:int)->int:ifn复杂度时间复杂度O(n)

70 行 Python 代码写春联,行书隶书楷书随你选

前言相信现在有很多小伙伴都不会写毛笔字了,今天想用python来写一幅春联,不知道有没有人喜欢。该文用的是田英章老师的楷书,我在网上总共找到了1600个汉字,因此,春联用字被限制在这1600个汉字的小字库中。我个人精力有限,同时受知识产权保护的限制,不可能制作完整的毛笔字库。那么,能否借用现有的矢量字库,满足朋友们的要求呢?经过一番尝试,发现操作系统自带的某些矢量字库,是可以作为毛笔字库使用的。以下是简单的演示代码,仅供学习编程技术之用,绝无侵犯字体权利人之权力的故意,特此声明。选择矢量字库虽然有很多方法可以帮你呈现出系统支持的所有字体文件,我建议最直接的方式是去查看操作系统的字体目录。以Wi

70 行 Python 代码写春联,行书隶书楷书随你选

前言相信现在有很多小伙伴都不会写毛笔字了,今天想用python来写一幅春联,不知道有没有人喜欢。该文用的是田英章老师的楷书,我在网上总共找到了1600个汉字,因此,春联用字被限制在这1600个汉字的小字库中。我个人精力有限,同时受知识产权保护的限制,不可能制作完整的毛笔字库。那么,能否借用现有的矢量字库,满足朋友们的要求呢?经过一番尝试,发现操作系统自带的某些矢量字库,是可以作为毛笔字库使用的。以下是简单的演示代码,仅供学习编程技术之用,绝无侵犯字体权利人之权力的故意,特此声明。选择矢量字库虽然有很多方法可以帮你呈现出系统支持的所有字体文件,我建议最直接的方式是去查看操作系统的字体目录。以Wi

Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!

上个月,Python之父GuidovanRossum在推特上转发了一篇文章《TheOriginsofPython》,引起了我的强烈兴趣。众所周知,Guido在1989年圣诞节期间开始创造Python,当时他就职于荷兰数学和计算机科学研究学会(简称CWI),曾参与设计与实现了一门用于教学的ABC语言。这段工作经历以及ABC语言的某些设计思想对Python有着重要的影响。文章标题是“Python的起源”,文章作者LambertMeertens是Guido在CWI时的导师,以同事亲历者的视角,讲述Python从无到有的起源过程。这样的文章我还未曾读过,因此饶有兴趣。文章内容跟Python直接相关的部

Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!

上个月,Python之父GuidovanRossum在推特上转发了一篇文章《TheOriginsofPython》,引起了我的强烈兴趣。众所周知,Guido在1989年圣诞节期间开始创造Python,当时他就职于荷兰数学和计算机科学研究学会(简称CWI),曾参与设计与实现了一门用于教学的ABC语言。这段工作经历以及ABC语言的某些设计思想对Python有着重要的影响。文章标题是“Python的起源”,文章作者LambertMeertens是Guido在CWI时的导师,以同事亲历者的视角,讲述Python从无到有的起源过程。这样的文章我还未曾读过,因此饶有兴趣。文章内容跟Python直接相关的部

leetcode 70. Climbing Stairs 爬楼梯(简单)

一、题目大意标签:动态规划https://leetcode.cn/problems/climbing-stairs假设你正在爬楼梯。需要n 阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1阶+1阶2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1阶+1阶+1阶1阶+2阶2阶+1阶提示:1二、解题思路给定n节台阶,每次可以走一步或两步,求一共有多少种方式可以走完这些台阶。这是个斐波那契数列题。定义一个数组dp,dp[i]表示走到第i阶的方法数。因为我们每次可以走一步或两步,所以第i阶可以从第