标签:netty int 字母 笔记 Kafka II 552 dp mod
# 初始状态表示当前有0个字母, 0个A, 0个连续的字母L的方案数目为1
dp[0][0][0] = 1
mod = 10 ** 9 + 7
for i in range(n):
# 第二层表示字母A的数目
for j in range(2):
# 第三层表示连续字母L的数目
for k in range(3):
# 枚举的是下一个位置, 因为求解的是方案数目, 所以需要累加上当前状态的dp值
# 判断下一个位置填字母A的情况
if j == 0: dp[i + 1][j + 1][0] = (dp[i + 1][j + 1][0] + dp[i][j][k]) % mod
# 判断下一个位置为L的字母的情况
if k + 1 <= 2: dp[i + 1][j][k + 1] = (dp[i + 1][j][k + 1] + dp[i][j][k]) % mod
# 下一个位置为字母P一定合法所以直接计算即可
dp[i + 1][j][0] = (dp[i + 1][j][0] + dp[i][j][k]) % mod
res = 0
# 计算有n个字母所有的合法方案, 包含合法的字母A和字母L的情况
for j in range(2):
for k in range(3):
res = (res + dp[n][j][k]) % mod
return res
**java代码(232ms)**
public class Solution {
public int checkRecord(int n) {
int dp[][][] = new int[n + 1][2][3];
dp[0][0][0] = 1;
int mod = 1000000007;
for (int i = 0; i < n; ++i){
for (int j = 0; j < 2; ++j){
for (int k = 0; k < 3; ++k){
if (j == 0){
dp[i + 1][j + 1][0] = (dp[i + 1][j + 1][0] + dp[i][j][k]) % mod;
}
if (k + 1 <= 2){
dp[i + 1][j][k + 1] = (dp[i + 1][j][k + 1] + dp[i][j][k]) % mod;
}
dp[i + 1][j][0] = (dp[i + 1][j][0] + dp[i][j][k]) % mod;
}
}
}
int res = 0;
for (int j = 0; j < 2; ++j){
for (int k = 0; k < 3; ++k){
res = (res + dp[n][j][k]) % mod;
}
}
return res;
}
}
# 总结
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
**麻烦帮忙转发一下这篇文章+关注我**
![就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)](https://www.icode9.com/i/ll/?i=img_convert/988f458b2ba06064badc785d1db7148c.png)
> **本文已被[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)收录**
31330508235)]
> **本文已被[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)收录**
标签:netty,int,字母,笔记,Kafka,II,552,dp,mod 来源: https://blog.csdn.net/m0_60634964/article/details/120235158
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。