当前位置: 首页 > news >正文

计数dp(基础)

1641. 统计字典序元音字符串的数目 - 力扣(LeetCode)

class Solution {
public:int countVowelStrings(int n) {vector<vector<int>>dp(55,vector<int>(5));for(int i=0;i<=4;i++){dp[1][i]=1;}for(int i=2;i<=n;i++){for(int j=0;j<=4;j++){dp[i][j]=0;for(int k=j;k<=4;k++){dp[i][j]+=dp[i-1][k];}}}int result=0;for(int j=0;j<=4;j++){result+=dp[n][j];}return result;}
};

定义一个dp[i][j]二维数组,i代表字符串的长度,j代表开头字母(0代表a,1代表e.......)。

初始化dp数组,字符串长度为1的组合种类每一个字母都唯一,其他dp数组初始化为0,可以由字符串长度为1的状态向后推。

状态转移方程:

                for(int k=j;k<=4;k++){dp[i][j]+=dp[i-1][k];}

因为每次字符串的长度加一后,组合种类的数量等于原来这个字母开头的种类累加上长度减一后从这个字母开始向后的每一个字母的种类数。

http://www.dtcms.com/a/300394.html

相关文章:

  • 【AI】联网模式
  • 【micro:bit】从入门到放弃(六):示例蜂鸣器音乐、摇色子、光照强度、串口调试、麦克风
  • vulhub Earth靶场攻略
  • Scrapy分布式爬虫数据统计全栈方案:构建企业级监控分析系统
  • 慧星云新增大模型服务:多款大模型轻松调用
  • 【leetGPU】1. Vector Addition
  • LChot100--128. 最长连续序列
  • 7月26日京东秋招第一场第一题
  • 资产负债表及其数据获取
  • earth靶场
  • 【408二轮强化】数据结构——线性表
  • Pspice仿真电路:(三十四)如何使用Pspcie进行仿真
  • mount: /mnt/sd: wrong fs type, bad option, bad superblock on /dev/mmcblk1
  • 两个USB-CAN-A收发测试
  • Item14:在资源管理类中小心拷贝行为
  • 小白成长之路-部署Zabbix7(二)
  • 每日一题【删除有序数组中的重复项 II】
  • linux shell从入门到精通(二)——变量操作
  • 深度学习损失函数的设计哲学:从交叉熵到Huber损失的深入探索
  • java--JDBC
  • OSPF路由协议之多区域划分
  • nuphy新键盘快捷键
  • 智慧工业缺陷检测准确率↑32%:陌讯多模态融合算法实战解析
  • 英语听力口语词汇-8.美食类
  • docker安装问题汇总
  • ETE_Voice:端到端C++智能语音对话系统
  • 用unity开发教学辅助软件---幼儿绘本英语拼读
  • 相机标定相关原理
  • 【高等数学】第五章 定积分——第五节 反常积分的审敛法 Γ函数
  • C++编程学习(第16天)