算法
dbqb007
Apache committer,熟悉中间件,微服务开发
展开
-
LeetCode刷题助手:根据数组生成二叉树
大家在刷LeetCode的二叉树相关的题目的时候,遇到问题需要在本地IDE里调试的时候,题目里给的二叉树的形式是一个数组,类似Integer[] array = new Integer[]{1, null, 2, null, null, null, 3};这种形式,它是以null来做填充,构成一个完全二叉树,具体的图我就不画了,大家自己理解一下。而我们需要自己手动把它转换成二叉树的形式,...原创 2019-02-18 22:16:52 · 8054 阅读 · 5 评论 -
基于循环数组实现的带滑动窗口的计数器限流算法
当系统面临高并发、大流量的请求时,为保障服务的稳定运行,可采取限流算法。限流,顾名思义就是当请求超过一定数量时,就限制新的流量对系统的访问。目前限流算法主要有计数器法、漏桶算法和令牌桶算法。最简单的计数器限流算法只需要一个int型变量(可使用AtomicInteger变量,保证操作的原子性)count。保存一个初始的时间戳。每当有请求到来时,先判断和时间戳之间的差是否在一个统计周期内,如果在的...原创 2019-03-02 22:32:26 · 2388 阅读 · 0 评论 -
基于有向无环图(DAG)的任务调度Demo
定时任务是软件开发中经常遇到的问题。简单的定时任务只需要在固定时间触发它的执行就可以了。但是对于复杂的定时任务,可能是由多个任务组成一个任务组,它们之间存在依赖关系,一个任务执行的条件,必须是它的前置任务已经执行成功(或者没有前置任务),它才可以执行。例如下面这幅图:图中任务的依赖关系为:任务1:依赖2,5任务2:依赖3,4任务3:无依赖任务4:无依赖任务5:无依赖...原创 2019-04-05 14:34:00 · 14844 阅读 · 5 评论