- 博客(5)
- 收藏
- 关注
原创 LeetCode刷题之回溯算法
组合问题代码模板:切割问题实际上切割问题就是本质问题,他的难点在于在何处进行切割,也就是切割的标准在哪。对于这个问题的解决办法,就是如果符合要求,我们才切割,将切割后的内容存到临时list中。...
2021-09-17 22:40:28
77
原创 LeetCode专题之动态规划
背包问题这是一个动态规划经常遇到的问题,如下图所示,实际上我们只考虑0-1背包和完全背包就行,多重背包面试基本遇不到接下来我们可以看一下对应的模版:二维数组确定dp数组以及含义dp[i][j]:表示在容量为j的情况下从0-i的物品中选出最大的物品容量为多少。确定递推公式dp[i][j]=max{ dp[i-1][j], dp[i-1][j-weight(i)]+value(j)}也就是两种情况:选与不选。代码模版// weight数组的大小 就是物品个数fo.
2021-09-06 10:06:11
161
原创 系列二:Zookeeper的典型应用场景
1. 数据发布/订阅数据发布/订阅系统也就是我们常说的配置中心,也就是发布者将数据发布到zookeeper的一个或一系列节点上,供订阅者进行订阅,进而达到动态获取数据的目的。实现配置信息的集中式管理和数据的动态更新。数据发布/订阅系统一般来说有服务端推送和客户端拉(通常是通过开辟一个线程进行定时轮询拉取)这两种模式: 模式 解释 优点 缺点 服务端推送模式 一旦产生数据变更就主动向客
2021-08-23 16:25:59
254
原创 系列一:ZAB协议
一. 协议核心所有的事务请求必须由一个全局唯一的服务器来协调处理,这样的服务器叫:Leader 服务器。其他的服务器被称为 Follower 服务器。Leader 服务器将客户端事务请求转化成一个事务 Prososal(提议),并将改 Proposal 分发给集群中所有的 Follower 服务器。之后 Leader 服务器接收了正确的反馈后,那么 Leader 就会再次向所有的 Follower 服务器分发 Commit 消息,要求将前一个 Proposal 提交。该协议包含两个核心的部分也就是崩
2021-08-23 14:19:54
138
原创 java线程池使用原理以及详解
建立线程池的好处 降低资源消耗 提高响应速度 提高资源的利用率 带来其他的好处,更多的拓展性 线程池原理过程参考链接:线程池使用原理 线程池深入原理详解线程池的提交是基于execute方法,当一个任务提交至线程池之后,这个方法的执行流程如下: 线程池首先当前运行的线程数量是否少于corePoolSize。如果是,则创建一个新的工作线程来执行任务。如果都在执行任务,则进入2; 判断BlockingQueue是否已经满了,倘若还没有满,则将线程放入B
2021-08-20 17:35:57
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人